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



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

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

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
var directories = Directory.GetFiles(rootDir, "*.dwg", SearchOption.AllDirectories)
.Select(Path.GetDirectoryName)
.ToHashSet();

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

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

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;
}

最新更新