C# 彻底删除文件或目录,不可恢复,文件清除工具


ClearDirectory.exe下载

可拖拽任意文件或目录至此工具,执行清除。也可通过cmd调用。文件清除后,数据恢复软件也无法恢复。

REM 清除指定的文件或目录
"%~dp0ClearDirectory.exe" "D:\sci\1.txt"

源码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClearDirectory
{
    public class ClearTool
    {
        /// <summary>
        /// 清空目录或文件
        /// </summary>
        public static void ClearDelet(string path)
        {
            if (File.Exists(path)) ClearDeletFile(path);
            if (Directory.Exists(path)) ClearDeletDirectory(path);
        }

        /// <summary>
        /// 先清空目录中的所有文件和子目录内容,再删除当前目录
        /// </summary>
        public static void ClearDeletDirectory(string dir)
        {
            if (Directory.Exists(dir))
            {
                // 清除目录下的所有文件
                foreach (String iteam in Directory.GetFiles(dir))
                {
                    ClearDeletFile(iteam);
                }

                // 清除目录下的所有子目录
                foreach (String iteam in Directory.GetDirectories(dir))
                {
                    ClearDeletDirectory(iteam);
                }

                String newName = System.IO.Directory.GetParent(dir).FullName + "\\$";
                while (File.Exists(newName)) newName += "$";

                // 清除当前目录
                Directory.Move(dir, newName);   // 重命名当前目录,清除目录名信息
                Directory.Delete(newName);      // 清除当前目录
            }
        }

        /// <summary>
        /// 先清空文件内容,再删除
        /// </summary>
        public static void ClearDeletFile(string file)
        {
            ClearFile(file);                // 清空文件内容
            if (File.Exists(file))
            {
                String newName = System.IO.Directory.GetParent(file).FullName + "\\$";
                while (File.Exists(newName)) newName += "$";

                File.Move(file, newName);   // 重命名文件,清除文件名称信息
                File.Delete(newName);       // 删除文件
            }
        }

        /// <summary>
        /// 清空文件内容
        /// </summary>
        public static void ClearFile(string file)
        {
            if (File.Exists(file))
            {
                int SIZE = 1024 * 10240;
                byte[] array = new byte[SIZE];
                array.Initialize();

                FileStream s = new FileStream(file, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite, SIZE, FileOptions.RandomAccess);

                // 清空原有文件内容
                while (s.Position + SIZE <= s.Length - 1)
                {
                    s.Write(array, 0, SIZE);
                }
                int reminds = (int)(s.Length - s.Position);
                if (reminds > 0) s.Write(array, 0, reminds);

                // 清除文件长度信息
                s.SetLength(0);
                s.Close();
            }
        }

    }

}


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
.NET Framework清理工具支持删除以下产品: .NET Framework-所有版本 .NET Framework-所有版本(Tablet PC和Media Center) .NET Framework-所有版本(Windows Server 2003) .NET Framework-所有版本(Windows Vista和Windows Server 2008) .NET Framework-所有版本(Windows 7) .NET Framework 1.0 .NET Framework 1.1 .NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5 .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2 .NET Framework 4.7 .NET Framework 4.7.1 .NET Framework 4.7.2 并非所有上述产品都会出现在每个操作系统上的.NET Framework清理工具的UI中。清理工具包含逻辑,因此,如果该工具在包含.NET Framework作为OS组件的OS版本上运行,则不会提供清理它的选项。这意味着在Windows XP Media Center Edition或Tablet PC Edition上运行清理工具不会提供清理.NET Framework 1.0的选项,在Windows Server 2003上运行它不会提供清理.NET Framework 1.1的选项。并且在Windows Vista或Windows Server 2008上运行它不会提供清理.NET Framework 2.0或.NET Framework 3.0的选项。 当选择删除任何上述版本的.NET Framework时,清理工具还将删除所有关联的修补程序和Service Pack。您无需运行任何单独的步骤即可删除.NET Framework版本的Service Pack。 退出码 清理工具可以返回以下退出代码: 0-指定产品的清理成功完成 3010-指定产品的清理成功完成,并且需要重新启动才能完成清理过程 1-清理工具需要计算机上的管理特权 2-在与cleanup.exe相同的路径中找不到所需的文件cleanup.ini 3-传入的产品名称无法删除,因为它是运行清理工具的系统上OS的一部分 4-传入的产品名称在cleanup.ini中不存在 100-清理能够开始,但是在清理过程中失败 1602-清理已取消 日志文件 清理工具将创建以下日志文​​件: %temp%\ cleanup_main.log-每次运行清理工具期间所有活动的日志;这是下面列出的日志的超集以及一些其他信息 %temp%\ cleanup_actions.log-删除每个产品期间执行的操作的日志;它将列出它找到并删除文件,它要删除的产品代码,它要删除的注册表项等。 %temp%\ cleanup_errors.log-每次运行清除工具时遇到的错误和警告的日志

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值