如何将List转换为DirectoryInfo

本文关键字:DirectoryInfo 转换 List | 更新日期: 2023-09-27 18:23:46

在我的应用程序中,我有一个特定的目录,如"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''筛选出文件夹,我能够做到这一点。因此,DirectoryInfo变量中将只保留"Customer"文件夹。

想象一下,我的列表只有以下项目:

C:'Temp'Folder1'Customer'Michael
C:'Temp'Folder1'Customer'May

但现在我有一个问题,我需要删除DirectoryInfo变量中可用的Customer文件夹,但筛选的记录是一个列表,而不是DirectoryInfo类,所以我无法使用DirectoryInfo.delete()删除每个Customer文件夹。

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

如何将List转换为DirectoryInfo

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

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

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

您应该检查System.IO.Directory.Delete(字符串路径)方法。这不需要创建一个新对象来删除文件夹。