如何永久删除文件使其变得不可恢复?

发布于 2024-08-15 15:15:10 字数 118 浏览 3 评论 0原文

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

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

If I want my application (written in .NET) to delete a file such that it can not be recovered by disk recovery tool. What are my options?

One that I can think of is that I open it up in write mode, overwrite all of it with some random data and it would make the file unrecoverable. Is there any other way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

雾里花 2024-08-22 15:15:10

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

可以指定传递次数。

Shell out to SDELETE:
http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx

you can specify the number of passes.

ゞ花落谁相伴 2024-08-22 15:15:10

不做任何事情覆盖文件不会完全按照你想要的那样吗?

Wouldn't overwriting the file with nothing do exactly as you want?

梦里南柯 2024-08-22 15:15:10

抱歉我的英语不好,我来自巴西。

此代码对于 C# 应用程序很有用(如果您的应用程序是用 VB 编写的,则可以使用 VB Diagnostics 类来适应此代码,这并不难,逻辑相同且简单)。
她使用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();
            }
        }
    }

Sorry my bad english, i from Brazil.

This code is useful for C# applications (you can suit this code using VB Diagnostics class if you application is writted in VB, this not is so hard, the logic is same and simple).
Her use MS-DOS for delete the file, when a file has been deleted using the DEL command, we don't cant recovery ther.

Microsoft says:

"If you use del to delete a file from your disk, you cannot retrieve it."

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();
            }
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文