.net 如何永久删除文件,使其无法恢复?
如果我希望我的应用程序(用.NET编写)删除一个文件,使其无法通过磁盘恢复工具恢复。我有什么选择.net 如何永久删除文件,使其无法恢复?,.net,winapi,file-io,operating-system,filesystems,.net,Winapi,File Io,Operating System,Filesystems,如果我希望我的应用程序(用.NET编写)删除一个文件,使其无法通过磁盘恢复工具恢复。我有什么选择 我能想到的一点是,我以写模式打开它,用一些随机数据覆盖所有文件,这会使文件无法恢复。有其他方法吗?您可能会发现CodeProject上的这一点很有用。不会完全按照您的意愿无需任何操作就覆盖该文件?请退出以删除: 您可以指定通过次数。对不起,我英语不好,我来自巴西 这段代码对C#应用程序很有用(如果应用程序是用VB编写的,那么可以使用VB诊断类来适应这段代码,这并不难,逻辑是相同的,而且很简单)。
我能想到的一点是,我以写模式打开它,用一些随机数据覆盖所有文件,这会使文件无法恢复。有其他方法吗?您可能会发现CodeProject上的这一点很有用。不会完全按照您的意愿无需任何操作就覆盖该文件?请退出以删除:
您可以指定通过次数。对不起,我英语不好,我来自巴西 这段代码对C#应用程序很有用(如果应用程序是用VB编写的,那么可以使用VB诊断类来适应这段代码,这并不难,逻辑是相同的,而且很简单)。 她使用MS-DOS删除文件,当使用
DEL
命令删除文件时,我们无法恢复该文件
微软表示:
如果使用del从磁盘删除文件,则无法检索该文件
我已经研究了几种不同的方法,您提出的解决方案是大多数人所依赖的。其他人变得非常复杂。
public void deleteFilePermanent(FileInfo fileInfo)
{
if (File.Exists(fileInfo.FullName))
{
ProcessStartInfo startCmd = new System.Diagnostics.ProcessStartInfo("cmd.exe");
// This arguments equals a: del -f C:\Exemple\Folder\file.name
startCmd.Arguments = "/C del -f " + fileInfo.FullName;
startCmd.CreateNoWindow = true;
startCmd.UseShellExecute = false;
using (Process cmdProc = new Process())
{
cmdProc.StartInfo = startCmd;
cmdProc.Start();
cmdProc.WaitForExit();
cmdProc.Close();
}
}
}