Как создать нулевой разреженный файл 1G в Windows?

В Linux:

$ dd if=/dev/null of=mysparse seek=1G count=0
$ du -b mysparse
549755813888    mysparse
$ du -B1 mysparse
0       mysparse

В Windows я играл с Fsutil, но я не могу получить размер на диске меньше, чем размер в свойствах файла.

3 ответа

FSUtil File CreateNew temp 0x100000
FSUtil Sparse SetFlag temp
FSUtil Sparse SetRange temp 0 0x100000

Может быть, это вам поможет: "SparseChecker" - управляет разреженными файлами в Windows NTFS. Он позволяет работать с файлами, а не с отдельными блоками файлов, как это делает "fsutil".

То, что @Mehrdad сказал, правильно.

Однако все, что вы записываете в файл (даже с нулевым диапазоном), будет считаться данными для операционной системы (и, следовательно, выделено пространство), и только FSCTL_SET_ZERO_DATA() позволит записывать нули, не занимающие места.

fsutil sparse setflag [file]

позволит установить файл как разреженный файл.

Другие вопросы по тегам