如何永久删除一次命中子目录下的所有文件
本文关键字:子目录 文件 一次 删除 何永久 | 更新日期: 2023-09-27 18:08:15
我有一个这样的目录结构:
c: ' ' '年月日' '小时分钟
'year'根目录和向下目录都可以有许多子目录
从'Day'子根目录开始,我希望删除子子目录下的所有文件和目录。
我说的永久删除是指不发送到回收站。
我找到了他的代码:
using Microsoft.VisualBasic.FileIO:
var files = GetAllFiles(suggested);
foreach (var file in files)
{
FileSystem.DeleteFile(file, UIOption.OnlyErrorDialogs,RecycleOption.DeletePermanently, UICancelOption.ThrowException);`
}
FileSystem.DeleteDirectory(suggested, UIOption.OnlyErrorDialogs,RecycleOption.DeletePermanently, UICancelOption.ThrowException);
private static IEnumerable<string> GetAllFiles(string rootDirectory)
{
foreach (var file in Directory.GetFiles(rootDirectory, "*", SearchOption.AllDirectories))
{
yield return file;
}
}
我想做的是省略GetFilesMethod(path),并做这样的事情:
FileSystem.DeleteDirectory(suggested, UIOption.OnlyErrorDialogs,RecycleOption.DeletePermanently, UICancelOption.ThrowException, recursive=true, all contents);
显然,'recursive=true, all contents'是SUDO代码。
谢谢
首先,我建议你在指责LINQ太慢之前做一些基准测试。
第二,您可以使用System.IO.Directory.Delete
方法实现所需的功能(使用递归永久删除文件):
删除指定的目录,如果指定,删除目录中的所有子目录和文件。
像这样使用:
Directory.Delete(suggested, true);