这是我方法中的代码:
t = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string[] textfiles = ApplyAllFiles(t, "*.txt", ProcessFile).ToArray();
然后我也做了:
s = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string[] textfiles = ApplyAllFiles(s, "*.jpg", ProcessFile).ToArray();
ApplyAllFiles 方法:
static void ProcessFile(string path) {/* ... */}
static IEnumerable<string> ApplyAllFiles(string folder, string searchPattern, Action<string> fileAction)
{
IEnumerable<string> files = Directory.GetFiles(folder, searchPattern);
foreach (string file in files)
{
fileAction(file);
}
foreach (string subDir in Directory.GetDirectories(folder))
{
try
{
files = files.Concat(ApplyAllFiles(subDir, searchPattern, fileAction));
}
catch
{
// swallow, log, whatever
}
}
return files;
}
它没有从主目录获取文件,例如第一个主目录是:C:\Users\bout0_000\Documents 我在这个目录中有一些文本文件。它将从
Documents 的子目录中获取所有文本文件,但永远不会获取 C:\Users\bout0_000\Documents 中的文本文件我怎样才能获得不止一个扩展,例如我做了“*.jpg”,但我还想获得 bmp 文件、png 文件和 gif 文件。