java - Hvilket værktøj/værktøj kan jeg bruge til at liste slettede filer på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg laver et Java Desktop-program, der skal 'Shred' eller 'Swipe' eller 'Permanently Delete Diles'. Jeg kan gøre swiping, men først skal jeg finde og få adgang til de slettede filer.


Er der noget værktøj eller værktøj, som jeg kan bruge til at få adgang til slettede filer? Jeg kunne genoprette dem til et midlertidigt sted og derefter makulere dem. Eller er der en måde jeg kan gøre med Java eller kommandolinjen?

Bedste reference



  Hvordan opregner jeg filer, der er markeret som slettet i Windows-sletningsprocessen ved hjælp af Java eller kommandolinjen?



Det korte svar er, at du ikke kan gøre det i Java.


Jo længere svar er, at den eneste måde, du kunne gøre dette i Java, ville være at skrive en masse native kode til:



  • Åbn disken på diskblocksniveauet,

  • Afkode filsystemdataene struktureret for at finde slettede filer og forældreløse blokke, der engang var en del af slettede filer, og

  • nul de relevante blokke.



... mens ...



  • Sørg for, at blokkene ikke er blevet omfordelt til en anden (ikke-slettet) fil, og

  • under hensyntagen til andre kørende processer, der kan oprette, ændre og slette filer.



Hvis du gør alt dette er virkelig hårdt , hvis du implementerer alt i C/C ++ og endnu hårdere , hvis du laver det fra Java. Og hvis du skruer det op, kan du ødelægge pc'ens filsystem.





En bedre ide ville være at finde et eksisterende værktøj/værktøj, der gør jobbet og brug Runtime.exec(...) eller tilsvarende at køre det som en separat proces.


(Jeg vil overlade det til en anden til at foreslå mulige værktøjer/hjælpeprogrammer. Sysinternals sdelete-værktøj ser ud til at beskæftige sig med filer, der allerede er slettet.)