· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Есть ли возможность чистить FAT

Посл.отвђт Сообщенiе


Дата: Июн 4, 2003 12:24:55

Я пишу прогу по затирке пустого места на диске. Хочу задать вопрос а как модно стереть удаленные имена файлов/папок в FAT. Если можно кусок кода <:)


Дата: Июн 4, 2003 12:51:46

В FAT удаленные имена не хранятся. Там хранятся списки кластеров занимаемых файлами. А имена вместе с номером первого кластера хранятся в каталогах, которые тоже явсяются файлами, но со специальной структурой. И прикладная программа может их только читать функциями findfirst/findnext.
Вообще данную задачу должен решить дефрагментатор (возможно еще потребуется программа для создания большого файла). Кроме того есть утилиты которые как раз и занимаются затиранием свободного места.

Лучше уж бороться с фрагментацией NTFS:
http://softodrom.ru/article/2/76_1.shtml


Дата: Июн 4, 2003 13:06:40

... ну если есть утилиты которые трут или перезаписывают эти каталоги значит как то можно... КАК вот вопрос ? :)


Дата: Июн 4, 2003 13:36:54

... да один большой файл будет в данном слечае быстрее ...


Дата: Июн 5, 2003 02:19:23

Расскажу немного про FAT12 (дискета 1.44), в FAT16 и FAT32 принципиальных отличий нет.
Итак на дискете мы имеем вот что:
1 сектор – BOOT-Sector
9 следующих секторов – первая копия FATa
9 следующих секторов – вторая копия FATa
14 следующих секторов – корневой каталог.
В корневом каталоге хранится все информация про файлы корневого каталога, на каждый файл выделяется 32 байта.
1. Смещение 0 – имя файла.
2. Смещение 1Ah –логический относительный номер первого сектора файла.
Эти 2 параметра нам и нужны
Из (1) можем узнать удален ли файл.
Если удален - идем в FAT, используя значения параметра 2, и обнуляем 12бит (пишем 000h – сектор свободен)
Если сектор не последний переходим к следующему и повторяем предыдущую операцию.
И так до тех пор пока не просмотрим все каталоги.

Это очень примерно.
Советую купить книгу Кулакова «Программирование на аппаратном уровне» или другую, не помню названия, посвященную дискам.


Дата: Июн 5, 2003 09:59:42

... спасибО !!! пошел искать Кулакова «Программирование на аппаратном уровне» может чего нарою интересного...


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.083