C# 将路径-C中具有特定值的文件分组#
我正在创建一个windows应用程序(C#)来构造文件夹中的一些文件。 我的文件夹结构如下 C:/Data/A/A1/d5/Data/abc.xml C:/Data/A/A1/cf/p3.xml C:/Data/A/A2/p1/p2.xml C:/Data/A/A2/m1/m2/cdf.xml C:/Data/A/A3/c1/e1/Data/abc.xml C:/Data/A/A3/ABC/cdf.xmlC# 将路径-C中具有特定值的文件分组#,c#,performance,linq,file,directory-structure,C#,Performance,Linq,File,Directory Structure,我正在创建一个windows应用程序(C#)来构造文件夹中的一些文件。 我的文件夹结构如下 C:/Data/A/A1/d5/Data/abc.xml C:/Data/A/A1/cf/p3.xml C:/Data/A/A2/p1/p2.xml C:/Data/A/A2/m1/m2/cdf.xml C:/Data/A/A3/c1/e1/Data/abc.xml C:/Data/A/A3/ABC/cdf.xml string path = "C:/Data/"; DirectoryInfo dire
string path = "C:/Data/";
DirectoryInfo directory = new DirectoryInfo(Path);
FileInfo[] files = directory.GetFiles("*.xml", SearchOption.AllDirectories);
我希望得到A1,A2,A3文件夹
我的意图是在A1、A2、A3下创建一个新文件夹,并将所有XML移到那里。
如何在路径中的模式之后获得特定的文件夹名称。
我在文件数组中有上千个xml文件。处理此问题的有效方法是什么?请注意循环或检查目录是否存在需要多少时间
string path = "C:/Data/A/A";
for (int i = 1; i < 3; i++)
{
var files = Directory.EnumerateFiles($"{path}{i}", "*.xml", SearchOption.AllDirectories);
Directory.CreateDirectory($"{path}{i}/new-folder/");
foreach (var file in files)
{
File.Move(file, $"{path}{i}/new-folder/{Path.GetFileName(file)}");
}
}
string path=“C:/Data/A/A”;
对于(int i=1;i<3;i++)
{
var files=Directory.EnumerateFiles($“{path}{i}”、“*.xml”、SearchOption.AllDirectories);
CreateDirectory($“{path}{i}/newfolder/”;
foreach(文件中的var文件)
{
Move(文件,$“{path}{i}/newfolder/{path.GetFileName(文件)}”);
}
}
那么这有什么用呢?只有三个吗?如果是这样,为什么不分别处理它们呢?会有更多的文件夹。实际情况是否与模式匹配