时间:2019-03-17 标签:c#exclusionhyphenfromdirectory.getdirectories

发布于 2024-10-09 12:54:49 字数 103 浏览 0 评论 0原文

我想使用 Directory.GetDirectories 方法来获取所有目录以及一些排除项。特别是我需要排除其中包含连字符的目录。我已经发现正则表达式不能用作搜索模式。我会使用什么搜索模式?

I would like to use the Directory.GetDirectories method to get all directories with some exclusions. In particular I need to exclude directories that have a hyphen in them. I already found out regular expressions to not work as search patterns. What search pattern would I use?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

只是偏爱你 2024-10-16 12:54:49

也许 linq 查询就足够了?

    //query notation
    var result = from d in Directory.GetDirectories(path) 
                 where !d.Contains("-")
                 select d;
    //'dot' notation
    var result2 = Directory.GetDirectories(path)
                  .Where(dir => !dir.Contains("-"));

编辑(更多解释)

上面的解决方案称为 “LINQ to Objects” 。它是一种查询实现 IEnumerableIEnumerable 接口的集合的方法。 GetDirectories 方法返回符合使用 Linq 条件的字符串的 Array。互联网上有很多有关 Linq 的资料。要了解 Linq 的强大功能,请浏览 MSDN 上的这些示例:101 Linq 示例。 BTW Linq 对于从各种来源(如 XML、数据库等)检索数据很有用。

Maybe a linq query would be sufficient?

    //query notation
    var result = from d in Directory.GetDirectories(path) 
                 where !d.Contains("-")
                 select d;
    //'dot' notation
    var result2 = Directory.GetDirectories(path)
                  .Where(dir => !dir.Contains("-"));

EDIT(More explanation)

The solution above is called "LINQ to Objects". It is a way of querying collections that implement IEnumerable or IEnumerable<T> interface. The GetDirectories method returns Array of string that is eligible to use Linq. There is a lot of stuff about Linq on the internet. To see te power of Linq flick through these examples on MSDN: 101 Linq Samples. BTW Linq is useful to retrieve data from various sources like XML, databases etx.

固执像三岁 2024-10-16 12:54:49
System.Collections.ObjectModel.Collection<string> resultDirs=new System.Collections.ObjectModel.Collection<string> ();
            foreach (string  dir in System.IO.Directory.GetDirectories("path"))
            {
                if (!dir.Contains("-")) resultDirs.Add(dir);
            }
System.Collections.ObjectModel.Collection<string> resultDirs=new System.Collections.ObjectModel.Collection<string> ();
            foreach (string  dir in System.IO.Directory.GetDirectories("path"))
            {
                if (!dir.Contains("-")) resultDirs.Add(dir);
            }
帅的被狗咬 2024-10-16 12:54:49

不是 LINQ 方式:

    static void Main(string[] args)
    {

        string StartingPath = "c:\\";

        List<string> mydirs = new List<string>(); // will contains folders not containing "-"

        foreach (string d in Directory.GetDirectories(StartingPath))
        {                               
            if (!(d.Contains("_")))
            {
                mydirs.Add(d);
            }                

            foreach (string dir in mydirs)
            {
                Console.WriteLine(dir);
            }
        }
    }
}

Not LINQ way:

    static void Main(string[] args)
    {

        string StartingPath = "c:\\";

        List<string> mydirs = new List<string>(); // will contains folders not containing "-"

        foreach (string d in Directory.GetDirectories(StartingPath))
        {                               
            if (!(d.Contains("_")))
            {
                mydirs.Add(d);
            }                

            foreach (string dir in mydirs)
            {
                Console.WriteLine(dir);
            }
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文