0

我正在使用 MFC CFile Seek 功能。我有一个关于寻找文件长度的问题。

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:备注

Seek 函数允许通过绝对或相对移动指针指定的量来随机访问文件的内容。在寻道期间实际上没有读取数据。如果请求的位置大于文件的大小,则文件长度将扩展到该位置,不会抛出异常。

根据 MSDN,文件长度将被延长。但是之后cfile.Close(),文件保持不变。为什么?非常感谢!

4

1 回答 1

1

我认为 MSDN 稍微错误地陈述了这个问题。当您调用 Seek 时,文件指针已调整,但磁盘上的实际文件尚未更改。如果在此之后调用 Write,则实际文件将成为具有预期长度的稀疏文件(在 NTFS 上)或更长的文件(在 FAT 上)。

好像没有什么明确的规定。

于 2009-09-15T03:47:50.850 回答