我正在使用MFC CFile查找函数。我有一个问题,寻找出文件长度。
CFile cfile;
BOOL bResult = cfile.Open(
L"C:\\2.TXT",
CFile::modeReadWrite |
CFile::modeCreate |
CFile::modeNoTruncate |
CFile::typeBinary |
CFile::shareDenyNone);
cfile.Seek(10000, CFile::End);
cfile.Close();MSDN:备注
查找函数允许随机访问文件的内容,方法是绝对或相对地移动指针的指定数量。在查找过程中实际上没有读取任何数据。如果请求的位置大于文件的大小,则文件长度将扩展到该位置,并且不会引发任何异常。
根据MSDN,文件长度将被扩展。但是,在cfile.Close()之后,文件保持不变。为什么?非常感谢!
发布于 2009-09-15 03:47:50
我认为MSDN稍微夸大了这件事。当您调用file时,文件指针会被调整,但是磁盘上的实际文件还没有改变。如果在此之后调用Write,则实际文件将变为稀疏文件(在NTFS上)或更长的文件(在FAT上),具有预期的长度。
似乎没有任何明确的规则。
https://stackoverflow.com/questions/1424934
复制相似问题