Я могу читать необработанные данные поврежденной файловой системы USB-накопителя. Есть ли какой-нибудь простой способ восстановить только текстовые файлы и файлы docx, используя эти необработанные данные? (Язык программирования: C ++)
Восстановление текстового файла на поврежденной файловой системе Flashdrive
Ответы (1)
Возможно, это получится, но это будет непросто.
Прежде всего вам нужно будет проанализировать файловую систему (я предполагаю, что это fat32 из тегов). Фактически, вам нужно будет проанализировать File Allocation Table
(если он поврежден и на вашем диске включена зеркальная копия FAT
, вы можете попробовать с ее помощью). В зависимости от повреждения вы можете извлечь некоторые файлы. Прочтите эту статью для получения дополнительной информации о структуре FAT32, и вы можете использовать эта спецификация Microsoft в качестве более строгого руководства. Хороший подход к пониманию файловой системы - это сделать небольшой USB-накопитель или логический диск с образцом файла и проанализировать его вручную с помощью какого-нибудь шестнадцатеричного редактора (например, бесплатного wxHexEditor
или проприетарного WinHex
).
Вы можете попытаться найти последовательности из ASCII
символов в шестнадцатеричном изображении, но тогда вам нужно будет отсортировать их вручную.
Что касается docx, этот формат внутренне представляет собой набор файлов и ресурсов XML, сжатых в zip. Таким образом, восстановление из необработанного шестнадцатеричного изображения будет сложной задачей.
ASCII
символов, для необработанных текстовых файлов вы можете просто прокрутить изображение и проверить, находятся ли шестнадцатеричные значения внутри диапазона ASCII
и есть ли их последовательность длиннее некоторого значения. Он извлечет все текстовые данные (включая ASCII
имена файлов) из вашего изображения в несортированном порядке. Но это просто и может быть полезно, если на вашем диске всего несколько текстовых файлов.
- person trvecvlt; 13.04.2015