Od kilku dni jestem w stanie lekkiego WTF. Piszę mały program do bezpowrotnego usuwania plików. Jak każdy wie najlepszym rozwiązaniem jest nadpisanie, co też robię. Wszystko piszę w WinAPI (CreateFile, WriteFile, DeleteFile), chociaż to akurat nie stanowi problemu. Dlaczego? Program fajnie usuwa pliki, ale po otwarciu ich w Ontrack Professional wszystko widać jak na dłoni. Jak to możliwe?
Sprawdzałem na prostych plikach tekstowych, więc nie ma kopii. Pliki są nadpisywane na 100%, bo testowałem program z pominięciem ostatniego kroku (usuwania) i w hexedytorze pięknie widać same x00 :-) Gdy je następnie usunę za pomocą Shift+Delete, to w Ontrack'u plik też jest czysty. Tymczasem gdy usuwam go bezpośrednio z programu, to za każdym razem da się odtworzyć oryginalną zawartość.
W trakcie poszukiwania przyczyny znalazłem też taki program (ze źródłami): http://www.devarticles.com/c/a/Delphi-Kylix/Secure-File-Deletion-in-Delphi/ i efekt jest podobny jak w przypadku mojego softu :)
Jakieś koncepcje?