Directory.GetDirectories(),其名称仅包含数字 [英] Directory.GetDirectories() with names containing only numbers

查看:48
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆