.NET でのファイルのシュレッディングでは、 EraserまたはCodeProjectのこのコードを使用して、.NET でファイルを安全に消去することをお勧めします。
CodeProject のコードに問題があったため、独自の方法を作成しようとしていました。これが私が思いついたものです:
public static void secureDelete(string file, bool deleteFile = true)
{
string nfName = "deleted" + rnd.Next(1000000000, 2147483647) + ".del";
string fName = Path.GetFileName(file);
System.IO.File.Move(file, file.Replace(fName, nfName));
file = file.Replace(fName, nfName);
int overWritten = 0;
while (overWritten <= 7)
{
byte[] data = new byte[1 * 1024 * 1024];
rnd.NextBytes(data);
File.WriteAllBytes(file, data);
overWritten += 1;
}
if (deleteFile) { File.Delete(file); }
}
それはうまくいくようです。ファイルの名前をランダムに変更し、1 MB のランダム データで 7 回上書きします。ただ、実際にどれくらい安全なのか、どうせならもっと安全にできるのでは?