2010-04-27 3 views
1

Я пытаюсь редактировать необработанные данные накопителя FAT (думаю, я нашел решение для NTFS, но не работал для FAT. У меня нет ничего с FAT, просто все мои устройства используют его) с C# (результатом должен быть диск в другом формате - мой собственный формат). Я смог прочитать исходные данные (было приятно видеть FAT изнутри), используя CreateFile и открывая поток, используя IntPtr, который я получил, но не мог писать. Я попробовал несколько компьютеров, флэш-накопители USB, SD-карты, флоппи-диски - ничего. Если это невозможно с помощью C#, я могу сделать это на другом языке и позже вызвать функцию с помощью DLLImport. Спасибо.Редактирование необработанных данных привода FAT

+1

Почему вы хотите это сделать? – ChaosPandion

+0

Это настоящая длинная история. Короче говоря, я хочу больше места (особенно при использовании гибких дисков), и мой формат был разработан для разных целей (так что он идеально подходит для моего проекта, хотя я бы не использовал его ежедневно). –

+0

Исходная обработка данных файловой системы должна выполняться на уровне ядра, я думаю. Но это, конечно, опасно. –

ответ

0

Если вы редактируете или изменяете привод на уровне сектора, он больше не может быть полностью совместим.

Стандартный способ - сделать большой файл, чтобы заполнить все пространство, а затем работать с этими секторами.

Поскольку ваша цель - пространство, FAT фактически неэффективно. Если вы контролируете оба конца (чтение/запись), вы можете просто сжать сектор 0, чтобы он не распознавался как существующая файловая система, а затем вы можете создавать свои собственные сектора. Окна будут вставлять вас во вставку, чтобы диск не форматировался.