2010-07-25 5 views
2

Je suis sorti du jeu C# depuis que j'ai démarré iPhone, mais comment pouvez-vous supprimer complètement un fichier (il n'est donc pas stocké en mémoire) et n'est pas récupérable. Si vous ne pouvez pas le supprimer pour toujours, pouvez-vous le brouiller avec des données aléatoires afin qu'il ne puisse pas être ouvert mais existe toujours?C# - Suppression d'un fichier en permanence

Répondre

2

Il est certainement possible d'écraser un fichier afin que le contenu précédent ne puisse pas être récupéré. Mais cela doit être fait par le lecteur lui-même pour s'assurer que le bon bloc est écrasé ... C# interagit avec le système de fichiers, pas de blocs physiques, donc ne fournira aucune sécurité. La manière de demander à un lecteur d'effacer en toute sécurité quelque chose varie avec l'interface (ATAPI vs SATA, vs stockage de masse USB vs SCSI vs firewire), et C# ne fournit pas un moyen simple de commander à ce niveau.

+0

Que diriez-vous cela, je peux brouiller le fichier en utilisant le chiffrement à un point où il ne peut pas être lu du tout? Il existe déjà un logiciel pour le faire, c'est possible, comment le font-ils? – user377419

+0

http://en.wikipedia.org/wiki/HDDerase –

+0

@shorty: Si vous cryptez les données la PREMIÈRE fois que vous l'écrivez sur le disque, personne ne peut lire les données sans la clé. S'il a déjà été stocké non crypté, les deux seules manières d'empêcher la récupération sont (1) l'effacement sécurisé intégré du lecteur ou (2) la destruction physique complète du lecteur. –

2

sdelete exécutez cette commande via Process in C#.

Process p = new Process(); 
p.StartInfo = new ProcessStartInfo("cmd", "/c sdelete -p 1 -s -z -q -a 'path/to/director') 
    { 
     RedirectStandardOutput = true, 
     UseShellExecute = false, 
     CreateNoWindow = true 
    }; 
p.Start(); 
string output = p.StandardOutput.ReadToEnd(); 
p.WaitForExit(); 

sdelete peut être downloaded here

Questions connexes