GetDirectories returns 我一个字符串 c#
GetDirectories returns me a string c#
您好,我目前正在获取如下目录:
dirs = Directory
.GetDirectories(@"C:\Users\jphillips\Desktop\test", "*", SearchOption.AllDirectories)
.Where(Path => reg.IsMatch(Path))
.ToList();
有了这个,我可以过滤目录中的所有子目录,并使用下面提供的正则表达式过滤我想要的子目录:
Regex reg = new Regex(@"\d+(\.\d+)+");
我的问题是我的新目录路径字符串列表。我想对它们使用 directoryinfo 函数,例如 Parent 并获取这些目录的目录。有没有办法将我的字符串路径转换为 directyinfo 类型。谢谢!
好吧,既然 Directory.GetDicrectories returns 是一个字符串数组,您可以做的是在您的 LINQ 语句
中添加一个 select
dirs = Directory.GetDirectories(@"C:\Users\jphillips\Desktop\test", "*",
SearchOption.AllDirectories).Where(Path => reg.IsMatch(Path)).Select(x => new
DirectoryInfo(x)).ToList();
您可以为根路径创建一个 DirectoryInfo
,并使用它代替路径:
var rootDir = new DirectoryInfo(@"C:\Users\jphillips\Desktop\test");
dirs = rootDir.GetDirectories("*", SearchOption.AllDirectories)
.Where(d => reg.IsMatch(d.FullName))
.ToList();
您可以只使用 DirectoryInfo class 来执行此操作,并将 DirectoryInfo.Name 属性 提供给您的正则表达式而不是整个 DirectoryInfo 实例。
DirectoryInfo di = new DirectoryInfo(@"C:\Temp");
DirectoryInfo[] subDirectories = di.GetDirectories().Where(d => reg.IsMatch(d.Name));
您好,我目前正在获取如下目录:
dirs = Directory
.GetDirectories(@"C:\Users\jphillips\Desktop\test", "*", SearchOption.AllDirectories)
.Where(Path => reg.IsMatch(Path))
.ToList();
有了这个,我可以过滤目录中的所有子目录,并使用下面提供的正则表达式过滤我想要的子目录:
Regex reg = new Regex(@"\d+(\.\d+)+");
我的问题是我的新目录路径字符串列表。我想对它们使用 directoryinfo 函数,例如 Parent 并获取这些目录的目录。有没有办法将我的字符串路径转换为 directyinfo 类型。谢谢!
好吧,既然 Directory.GetDicrectories returns 是一个字符串数组,您可以做的是在您的 LINQ 语句
中添加一个 select dirs = Directory.GetDirectories(@"C:\Users\jphillips\Desktop\test", "*",
SearchOption.AllDirectories).Where(Path => reg.IsMatch(Path)).Select(x => new
DirectoryInfo(x)).ToList();
您可以为根路径创建一个 DirectoryInfo
,并使用它代替路径:
var rootDir = new DirectoryInfo(@"C:\Users\jphillips\Desktop\test");
dirs = rootDir.GetDirectories("*", SearchOption.AllDirectories)
.Where(d => reg.IsMatch(d.FullName))
.ToList();
您可以只使用 DirectoryInfo class 来执行此操作,并将 DirectoryInfo.Name 属性 提供给您的正则表达式而不是整个 DirectoryInfo 实例。
DirectoryInfo di = new DirectoryInfo(@"C:\Temp");
DirectoryInfo[] subDirectories = di.GetDirectories().Where(d => reg.IsMatch(d.Name));