Directory.GetDirectories(),其名称仅包含数字 [英] Directory.GetDirectories() with names containing only numbers
本文介绍了Directory.GetDirectories(),其名称仅包含数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Directory.GetDirectories()有办法吗?
仅获取名称与以下规则匹配的目录:
仅数字
-特殊数字计数(000-999)
我四处走动,但不匹配...
PS:C#和.NET4
Is there a Way with Directory.GetDirectories()
To get only directories with a name matching following rules:
only numbers
- special count of numbers ( 000 - 999 )
I triead a bit around but didn''t match it ...
PS: C# & .NET4
推荐答案
否. Directory.GetDirectories仅适用于过滤器字符串-不适用于正则表达式.
您将必须检索目录列表,然后自己使用正则表达式对其进行解析.
No. Directory.GetDirectories only works with a filter string - not a regular expression.
You would have to retrieve the directories list, and then parse them with a regex yourself.
这里是示例代码.
Here is a sample code.
class Program
{
static void Main(string[] args)
{
string rootDirectory = "C:\\";
foreach (var directoryInfo in GetDirectories(rootDirectory))
{
Console.WriteLine(directoryInfo.FullName);
}
Console.ReadKey();
}
static private DirectoryInfo[] GetDirectories(string rootDirectory)
{
Regex regex = new Regex("[0-9]");
var directories = Directory.GetDirectories(rootDirectory)
.Select(directory => new DirectoryInfo(directory))
.Where(directory =>
{
return regex.IsMatch(directory.Name);
}
);
return directories.ToArray();
}
}
这篇关于Directory.GetDirectories(),其名称仅包含数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文