【问题标题】:How do i get with GetFiles only images and text files?如何使用 GetFiles 仅获取图像和文本文件?
【发布时间】:2015-02-02 16:53:04
【问题描述】:

这将获取所有文件:

static void DirSearch(string sDir)
{
    try
    {
        foreach (string d in Directory.GetDirectories(sDir))
        {
            foreach (string f in Directory.GetFiles(d))
            {
                Console.WriteLine(f);
            }
            DirSearch(d);
        }
    }
    catch (System.Exception excpt)
    {
        Console.WriteLine(excpt.Message);
    }
}

但我只想获取所有或大部分图像类型文件和文本文件。

【问题讨论】:

  • 你看过所有的GetFiles() Overloads ..?现在来吧..做一个简单的谷歌搜索......!这可以用 Linq 完成.. 还有什么 ext 是图像文件.....Jpg.Gif....???

标签: c# .net winforms


【解决方案1】:

这是你需要了解的事情Linq && Lambda Extension Methods \ Expressions

var fi = new System.IO.DirectoryInfo(sDir).GetFiles().
     Where(f => !(f.FullName.EndsWith(".jpg") || f.Name.EndsWith(".txt"))).ToArray();

【讨论】:

  • 你回答他的问题很好。但你也指出这是一个简单的谷歌搜索。似乎两边都有点锋利。
【解决方案2】:

试试 Path() 类,它的功能类似于 GetExtension()

【讨论】:

    【解决方案3】:

    一种方法是创建您感兴趣的文件扩展名列表,然后将匹配的文件添加到列表中。

    List<string> validextentions = new List<string> {"bmp", "jpg", "gif"};
    DirectoryInfo d = new DirectoryInfo(@"C:\MyFolder\MyImages\");
    
    List<FileInfo> myFiles = (from file in d.GetFiles("*.*", SearchOption.AllDirectories)
                    where validextentions.Contains(file.Extension.Replace(".", "").ToLower())
                    select new FileInfo(file.FullName)).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2021-07-22
      相关资源
      最近更新 更多