我正在创建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 directory = new DirectoryInfo(Path);
FileInfo[] files = directory.GetFiles("*.xml", SearchOption.AllDirectories);
我希望获得A1,A2,A3文件夹。
我的意图是在A1,A2,A3下创建一个新文件夹,并将所有XML移到那里。如何在路径中的模式后获取特定的文件夹名称。我在文件数组中有超过一千个xml文件。处理此问题的有效方法是什么?
您可以执行以下操作:
string path = @"d:\Data\A\";
foreach(var dir in Directory.GetDirectories(path))
{
var files = Directory.EnumerateFiles(dir, "*.xml*", SearchOption.AllDirectories).ToList();
var newDir = Path.Combine(dir, "YourNewFolederName");
if (!Directory.Exists(newDir))
Directory.CreateDirectory(newDir);
files.ForEach(a => File.Copy(a, Path.Combine(newDir, Path.GetFileName(a)), true));
}
祝你好运。>>
请注意它需要循环多少次,或者检查目录是否存在