【发布时间】:2017-06-29 14:10:43
【问题描述】:
【问题讨论】:
-
不包含任何内容,但仍声称有大小......听起来像“稀疏文件”。我自己从来没有搞砸过,但你可以谷歌它并尝试你找到的东西。祝你好运。
-
“打开文件,什么都没有”是什么意思?文件属性中显示的字节数是您打开文件时找到的字节数......当然,除非文件有一个或多个备用流。您是在谈论具有备用流的文件吗?
-
您可以简单地使用 SetFilePointer() 寻找所需的 EOF 位置并调用 SetEndOfFile()。这会在 NTFS 文件系统上创建具有所需大小但没有分配集群的文件。读取这样的文件会产生二进制零。
-
@HansPassant:我很确定空间将被分配,除非您明确地使文件稀疏。它不会被抢先清零,但会被分配。 (我猜,如果您已将其打开,此行为可能会受到压缩的影响。)
-
嗯,我 100% 确定它不会。易于测试,以这种方式创建一个 100 GB 的文件。只需要几分之一秒。