10

В Linux:

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

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

3 ответа3

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

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

1

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

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

fsutil sparse setflag [file]

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .