如何永久删除一次命中子目录下的所有文件

本文关键字:子目录 文件 一次 删除 何永久 | 更新日期: 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);