我的文件夹结构如下
主文件夹的路径是
C:\Users\me\Desktop\main_folder\
可以有任意数量的任何名称的子文件夹。
我需要做的是进入每个子文件夹并解压缩其中的zip文件。
为此,在powerhsell中,我们可以使用跟随的路径,它接受给定文件夹中的任何子文件夹。
C:\Users\me\Desktop\main_folder\*\*.zip
但是如何在C#中执行此操作?
我试图使用的方法是
System.IO.Directory.GetFiles("C:\Users\me\Desktop\main_folder\*\",
"*.zip",System.IO.SearchOption.TopDirectoryOnly);
答案 0 :(得分:5)
试试这个:
string root = @"C:\Users\me\Desktop\main_folder\";
var files =
Directory.EnumerateDirectories(root).SelectMany(
directory => Directory.EnumerateFiles(directory, "*.zip"));
答案 1 :(得分:1)
你可以使用LINQ:
string mainFolder = @"C:\Users\me\Desktop\main_folder";
List<string> zipPaths = new List<string>();
string[] subDirectories = Directory.GetDirectories(mainFolder);
subDirectories.ToList().ForEach((path) =>
{
// you can either process your zips here...
// (in this case you don't have to add the paths to the zipPaths list)
zipPaths.AddRange(Directory.GetFiles(path, "*.zip"));
});
// or you can process your zipPaths list here...
ZIP文件的所有路径都在zipPaths列表中。