如何将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文件夹执行删除操作呢?
如何将列表转换为DirectoryInfo或手动添加每个项目在DirectoryInfo的列表中,以便我可以对每个执行删除客户文件夹?
您可以使用Enumerable.Select
投影每个元素,并从每个元素创建一个DirectoryInfo
:
foreach (var directory in listOfPaths.Select(path => new DirectoryInfo(path))
{
directory.Delete();
}
您应该检查System.IO.Directory.Delete(字符串路径)方法。这不需要创建一个新对象来删除文件夹。