如何将列表转换为 DirectoryInfo

How convert List to DirectoryInfo

在我的应用程序中,我有一个像 "C:\Temp\Folder1" 这样的特定目录,想象一下这个目录有以下子目录:

C:\Temp\Folder1\Admin\Billy
C:\Temp\Folder1\Customer\Michael
C:\Temp\Folder1\Admin\Julian
C:\Temp\Folder1\Customer\May
C:\Temp\Folder1\Admin\Sebastian

我使用 DirectoryInfo.GetDirectories() 获取以上所有子目录并转换为列表以使用 C:\Temp\Folder1\Admin\ 过滤掉文件夹,我设法做到了。因此只有 "Customer" 个文件夹将保留在 DirectoryInfo 变量中。

假设我的列表只有以下项目:

C:\Temp\Folder1\Customer\Michael
C:\Temp\Folder1\Customer\May

但现在我遇到了一个问题,我需要删除 DirectoryInfo 变量中可用的客户文件夹,但筛选的记录是一个列表,而不是 DirectoryInfo class 所以我无法使用 DirectoryInfo.Delete() 删除每个客户文件夹。

那么如何将列表转换为 DirectoryInfo 或手动将列表中的每个项目添加到 DirectoryInfo 以便我可以对每个 Customer 文件夹执行删除?

how do I convert the list to DirectoryInfo or manually add each item in the list into DirectoryInfo so that I can perform deletion on each Customer folder?

您可以使用 Enumerable.Select 投影每个元素并从每个元素创建一个 DirectoryInfo

foreach (var directory in listOfPaths.Select(path => new DirectoryInfo(path))
{
    directory.Delete();
}

您应该查看 System.IO.Directory.Delete(string path) 方法。这不需要创建一个新对象来删除文件夹。