首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#如何提取具有特定扩展名的文件路径并检索其父文件夹名称

c#如何提取具有特定扩展名的文件路径并检索其父文件夹名称
EN

Stack Overflow用户
提问于 2020-01-16 01:26:42
回答 2查看 78关注 0票数 0

我有一个文件夹结构如下,最上面的两个文件夹结构是可预测的,如DrawingFiles和项目名称,这将是任何随机数字。我正在尝试从项目文件夹中提取扩展名为".dwg“的文件。

复杂性在于,在项目文件夹中,可能存在任意数量的随机数量的文件夹,而".dwg“文件可能位于任何文件夹或多个文件夹中。我的目标是从每个项目文件夹和找到任何给定.dwg文件的文件夹中提取“dwg”文件的所有文件路径,该文件夹将成为规程文件夹。我要在其中提取项目名称、规程名称和dwg文件列表。

代码语言:javascript
复制
DrawingFiles
          >12345
            >xyz12
               >Engr
                 a.dwg
                 b.dwg
               >Elec
                 c.dwg
                 f.dwg
          >45678
            >xyz12
                 at.dwg
                 bt.dwg
             >Elec
                 b.dwg
                 l.dwg
             >spec1
                 >Struct
                   123.dwg
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-16 01:39:35

您可以通过传递已知文件夹路径来调用此方法:

代码语言:javascript
复制
private List<String> DirSearch(string rootDir)
{
    List<String> files = new List<String>();
    try
    {
        foreach (string f in Directory.GetFiles(rootDir))
        {
            FileInfo fi = new FileInfo(f);
            if(fi.Extension==".dwg"){
                string parent = System.IO.Directory.GetParent(rootDir).FullName;
                files.Add(parent);

            }
        }
        foreach (string d in Directory.GetDirectories(rootDir))
        {
            files.AddRange(DirSearch(d));
        }
    }
    catch
    {

    }

    return files;
}
票数 0
EN

Stack Overflow用户

发布于 2020-01-16 01:57:49

代码语言:javascript
复制
var directories = Directory.GetFiles(rootDir, "*.dwg", SearchOption.AllDirectories)
                           .Select(Path.GetDirectoryName)
                           .ToHashSet();

directories将包含唯一的目录路径(每个文件夹仅重复一次)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59756669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档