Мой друг сохранил файл, когда ее компьютер (Mac) упал. Она предположила, что файл был сохранен и не слишком беспокоилась об этом, но теперь она увидела, что размер файла равен 0 байтам, и файл пуст по понятным причинам.
Это произошло более недели назад, и она до сих пор выполняла много больших файловых операций, поэтому я сказал ей, что она, скорее всего, не сможет восстановить ее, и на самом деле она уже справилась с этим в любом случае, даже до того, как я ей сказал.
Тем не менее это заставило меня задуматься о том, существуют ли какие-либо инструменты администратора (Windows, Mac или UNIX) для изменения свойств размера файла, поэтому файловая система считает, что файл больше, или есть возможность прочитать несколько байтов с диска. начиная с указателя файла, игнорируя его размер в соответствии с таблицей файловой системы?
Поскольку этот файл уже был сохранен ранее и представлял собой простой текстовый файл (точно XML), я решил, что подделка большего размера файла приведет к тому, что смежные байты с диска будут интерпретированы так, как если бы они принадлежали поврежденному файлу. Когда вы затем откроете файл в простом текстовом редакторе, по крайней мере, часть файла могла бы быть снова доступна для чтения, если бы "свободные" кластеры уже не были востребованы каким-либо другим файлом или файл был разделен прямо там. (Примечание: если бы это было возможно, мы бы скопировали файл на USB-накопитель и снова уменьшили бы размер, чтобы разрешить возможное дублирование этого дискового пространства.)
Как написано выше, она уже справилась с повторным выполнением работы, но мне интересно, можете ли вы каким-либо образом манипулировать свойством размера файла или считывать фиксированное число байтов, не обращая внимания на информацию о "допустимой длине данных".
Я пытался Google, но Google, кажется, не понимает, что я хочу сделать. Единственное, что я обнаружил, это fsutil file setvaliddata <file> <length>
для Windows, но это, похоже, не работает. Я попытался изменить размер текстового файла в оболочке с повышенными правами, но, очевидно, любое другое значение для length
превышающей 200, приводит к «Ошибка: неправильный параметр», если 200 - это размер в байтах, который уже имел мой исходный файл.
Я также думал, что у меня больше шансов на OSX, так как он похож на UNIX, но на самом деле я больше ничего не нашел для любой ОС.