【问题标题】:How do I search for a list of files using wildcard如何使用通配符搜索文件列表
【发布时间】:2010-12-07 18:27:14
【问题描述】:

如何在 C# 中使用通配符列出选定文件夹中包含的文件?

【问题讨论】:

  • 你能解释一下你想要做的更好吗?列出文件名与您的字符串或其他内容匹配的文件?

标签: c# wildcard


【解决方案1】:

Directory.GetFiles 是你的朋友:

Directory.GetFiles(@"C:\Users\Me\Documents", "*.docx");

或者,递归:

Directory.GetFiles(
    @"C:\Users\Me\Documents",
    "*.docx",
    SearchOption.AllDirectories);

【讨论】:

    【解决方案2】:

    你可以这样做:

    string[] files = Directory.GetFiles(@"c:\myfolder", "*.txt", SearchOption.AllDirectories)
    

    【讨论】:

      【解决方案3】:

      使用DirectoryInfo.GetFiles

      using System.IO;
      
      DirectoryInfo folder = new DirectoryInfo(@"C:\foo\bar");
      if (folder.Exists) // else: Invalid folder!
      {
          FileInfo[] files = folder.GetFiles("*.xml");
      
          foreach (FileInfo file in files)
          {
              DoSomething(file.FullName);
          }
      }
      

      【讨论】:

      • folder.GetFiles() 返回一个 string[] 而不是 FileInfo[] 所以这不起作用。对于新手来说非常混乱!还是我错过了一个微妙之处?
      • @jolyon:不,不是字符串[]。请参阅文档:msdn.microsoft.com/en-us/library/8he88b63%28v=vs.110%29.aspx
      • jolyon 的评论不正确且令人困惑,因此我想澄清一下。 new DirectoryInfo().GetFiles 返回 FolderInfo[] 和 Directory.GetFiles 返回 string[]
      猜你喜欢
      • 2011-02-03
      • 2011-03-21
      • 2014-12-09
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      相关资源
      最近更新 更多