Удаление атрибута `разреженного` файла

Что такое sparse атрибут файла на разделах NTFS и как его удалить?

Использование Windows 7, Windows 8 и Windows 8.1.

Николь Гамильтон описала, что такое редкие файлы .
Давайте изучим его с эксперимента.

Создание разреженного файла

Запустите командную строку ( cmd.exe ) в качестве администратора.

  1. Создание большого файла:

     fsutil file createnew test.nul 1048576 
  2. Проверьте его размер в проводнике:
    • Размер: 1,00 МБ (1,048,576 байт)
    • Размер на диске: 1,00 МБ (1,048,576 байт)
  3. Отметим, что он разрежен:

     fsutil sparse setflag test.nul 
  4. Пока ничего не изменилось, оба размера по-прежнему 1,00 МБ.
  5. Отметьте весь диапазон байтов как разреженный:

     fsutil sparse setrange test.nul 0 1048576 
  6. Теперь размеры резко изменились:
    • Размер: 1,00 МБ (1,048,576 байт)
    • Размер на диске: 1.00 КБ (1 024 байта)
  7. Вы можете запросить, если файл разрежен или нет с помощью fsutil :

     fsutil sparse queryflag test.nul This file is set as sparse 

    Или

     This file is NOT set as sparse 

Значение размера на диске зависит от размера кластера файловой системы. Размер кластера по умолчанию для NTFS составляет 4 КБ. Привод, который я использовал для тестирования, был отформатирован с кластером 1 КБ.

Я использовал эту статью в качестве источника .


Удаление разреженного атрибута

Утилита, которую я использовал в примере, не предоставляет флаг для удаления разреженного атрибута.

Самый простой способ – скопировать файл . Файл потеряет этот специальный атрибут, если приложение, которое его копирует, специально не сохраняет разреженный атрибут и разреженный диапазон.

Вы можете использовать Far Manager, чтобы очистить разреженный атрибут. Перейдите к файлу и нажмите Ctrl + A, чтобы открыть диалоговое окно Attribute. Clear Sparse . Нажмите кнопку « Установить» . Атрибуты файла test.nul в Fra Manager

Редкий файл – это тот, в котором есть дыры. Большие разделы двоичных нулей не записываются на диск. Вот объяснение Microsoft из Sparse Files (Windows) :

Когда разрешена ограниченная функциональность файла, система не выделяет пространство на жестком диске в файл, за исключением регионов, где они содержат ненулевые данные. Когда выполняется операция записи, когда большой объем данных в буфере нулей, нули не записываются в файл. Вместо этого файловая система создает внутренний список, содержащий местоположения нулей в файле, и этот список рассматривается во время всех операций чтения. Когда операция чтения выполняется в областях файла, где были найдены нули, файловая система возвращает соответствующее количество нулей в буфере, выделенном для операции чтения. Таким образом, обслуживание разреженного файла прозрачно для всех процессов, которые к нему обращаются, и более эффективно, чем сжатие для этого конкретного сценария.

Эта редкая проблема с атрибутами происходит всегда с загруженными ISO для меня.

Поместите это в пакетный файл и перетащите целевой файл на него (с помощью проводника Windows). И вуаля.

 fsutil sparse queryflag %1 pause fsutil sparse setflag %1 0 fsutil sparse queryflag %1 pause 

Однако это не работает в Windows 7 и 8.x (возможно, Vista), поскольку setflag принимает только <filename> как допустимый параметр и не существует соответствующей команды clearflag . Однако он работает в Windows 10.

  • Windows 8.1 Pro изменить язык
  • Где установлены приложения из Windows Store?
  • Могу ли я заставить свой ноутбук использовать NVIDIA вместо Intel?
  • Могу ли я выбирать, из каких папок выбирается «Фотографии»?
  • Как resize изображения в C # WinRT / winmd?
  • Сопоставления файлов для Windows 8
  • Есть ли способ пропустить меню «Пуск» и перейти прямо к рабочему столу (без отключения современного пользовательского интерфейса)?
  • Windows 8 «chkdsk / r» застрял на стадии 4
  • Настройка цвета фона или WPF (4.0) ListBox - Windows 8
  • Будут ли мои приложения и файлы потеряны или МОЖЕТ быть потеряны?
  • Как установить другой метод ввода для каждого окна приложения
  • Давайте будем гением компьютера.