首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[C#][转载]彻底删除文件或目录不可恢复恢复工具也不行

[C#][转载]彻底删除文件或目录不可恢复恢复工具也不行

作者头像
云未归来
发布2025-07-18 15:45:10
发布2025-07-18 15:45:10
600
举报

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();             }         }     } }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档