我需要编写一个小工具来占用磁盘的可用空间(只留几个Kilo Bytes)来测试一些“低磁盘空间”用例。代码:
new FileStream(filename).SetLength(remaining free bytes - 1024); //leaving 1KB's free space
但如果长度为千兆字节,FileStream.SetLength(long length)
太慢,就像将大型高清电影复制到磁盘一样慢。 (编辑:对不起我只是意识到我只有在写入可移动闪存时才会遇到这种情况,如果写入其他本地驱动器,速度足够快。)
所以我想知道,是否有更快的方法来编写空白文件(即填充零)? C / C ++中的代码也是受欢迎的。 或者是否有其他技巧可以测试“低磁盘空间”情况而无需写入空白文件?
答案 0 :(得分:3)
您可以创建大型文件,而无需通过Windows API调用SetFileValidData写入这些文件。
但请注意,它不会用零填充文件(这就是为什么它更快)。另外,请仔细阅读该功能的文档,因为存在安全隐患。
答案 1 :(得分:0)
谷歌搜索后,我被引导到这个问题: Creating big file on Windows
这回答了我的问题。