我有一个文件夹结构如下,最上面的两个文件夹结构是可预测的,如DrawingFiles和项目名称,这将是任何随机数字。我正在尝试从项目文件夹中提取扩展名为".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发布于 2020-01-16 01:39:35
您可以通过传递已知文件夹路径来调用此方法:
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;
}发布于 2020-01-16 01:57:49
var directories = Directory.GetFiles(rootDir, "*.dwg", SearchOption.AllDirectories)
.Select(Path.GetDirectoryName)
.ToHashSet();directories将包含唯一的目录路径(每个文件夹仅重复一次)。
https://stackoverflow.com/questions/59756669
复制相似问题