如何永久删除文件,使其无法恢复?

时间:2009-12-19 16:47:38

标签: .net winapi file-io operating-system filesystems

如果我希望我的应用程序(用.NET编写)删除文件,使其无法通过磁盘恢复工具恢复。我有什么选择?

我能想到的是,我在写入模式下打开它,用一些随机数据覆盖所有这些,这会使文件无法恢复。还有其他办法吗?

4 个答案:

答案 0 :(得分:3)

您可能会发现CodeProject上的article有用。

答案 1 :(得分:1)

Shell转到SDELETE: http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx

您可以指定通行证数量。

答案 2 :(得分:0)

不会覆盖文件,没有完全按照您的要求进行操作吗?

答案 3 :(得分:0)

对不起,我的英语不好,我来自巴西。

此代码对C#应用程序很有用(如果您使用VB编写应用程序,则可以使用VB Diagnostics类适合此代码,这并不难,逻辑相同且简单)。 她使用MS-DOS删除文件,使用DEL命令删除文件后,我们将无法恢复。

Microsoft说:

“如果使用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();
            }
        }
    }