Mój przyjaciel zapisał plik, gdy rozbił się jej komputer (Mac). Zakładała, że ​​plik został zapisany i nie przejmował się tym zbytnio, ale teraz widziała, że ​​rozmiar pliku wynosi 0 bajtów i plik jest pusty z oczywistych powodów.

Zdarzyło się to ponad tydzień temu i do tej pory przeprowadziła wiele dużych operacji na plikach, więc powiedziałem jej, że najprawdopodobniej nie będzie w stanie go przywrócić, aw rzeczywistości i tak już sobie z tym poradziła, nawet zanim jej powiedziałem.

Mimo to zastanawiałem się, czy istnieją jakieś narzędzia administracyjne (Windows, Mac lub UNIX) do modyfikowania właściwości rozmiaru pliku, więc system plików uważa, że ​​plik jest większy lub jeśli istnieje możliwość odczytania liczby bajtów z dysku zaczynając od wskaźnika pliku, pomijając jego rozmiar zgodnie z tabelą systemu plików?

Ponieważ ponieważ plik był już wcześniej zapisany i był zwykłym plikiem tekstowym (dokładnie XML), pomyślałem, że udając większy rozmiar pliku sąsiednie bajty z dysku byłyby interpretowane tak, jakby należały do ​​uszkodzonego pliku. Gdy następnie otworzysz plik w prostym edytorze tekstu, przynajmniej część pliku mogłaby być ponownie odczytana, chyba że „wolne” klastry zostały już zgłoszone przez inny plik lub plik został tam podzielony na partycje. (N. B .: Gdyby to było możliwe, skopiowalibyśmy plik na dysk USB, a następnie ponownie zmniejszyli rozmiar, aby rozwiązać ewentualny duplikat alokacji tego miejsca na dysku).

Jak napisano powyżej, już poradziła sobie z ponownym wykonaniem pracy, ale zastanawiam się, czy rzeczywiście można manipulować właściwością rozmiaru pliku lub odczytać stałą liczbę bajtów, pomijając informacje o „poprawnej długości danych” w dowolny sposób.

Próbowałem go Google, ale Google nie rozumie tego, co chcę robić. Jedyne, co znalazłem, to fsutil file setvaliddata <file> <length> dla Windows, ale to nie działa. Próbowałem zmodyfikować rozmiar pliku tekstowego w podwyższonej powłoce, ale najwyraźniej każda inna wartość length ponad 200 powoduje „Błąd: zły parametr”, gdy 200 jest rozmiarem w bajtach, który mój oryginalny plik już miał.

Myślałem też, że mam większe szanse na OSX, ponieważ jest to zarówno UNIX, ale w rzeczywistości nie znalazłem niczego innego dla żadnego systemu operacyjnego.

LWChris
źródło