你好,我正在创建一个应用程序,想知道一个文件夹下的每个文件。也就是说,如何遍历根目录并至少访问一次每个文件。
string[] filePaths = Directory.GetFiles(@"c:\MyDir\", "*.*", SearchOption.AllDirectories);
显然,在 Web 应用程序中,您不太可能访问 "c:\MyDir",因此,您可以使用变量来存储 MapPath 调用的结果,如下所示:
var rootDir = Server.MapPath("~/App_Data");
SearchOption.AllDirectories
参数:foreach (var file in Directory.EnumerateFiles(@"c:\", "*.txt", SearchOption.AllDirectories))
{
// Do stuff here
}
EnumerateFiles方法比GetFiles方法快得多,因为它实际上只返回枚举器,并且直到读取文件时才会访问它们。
void Main()
{
DirectoryInfo info = new DirectoryInfo(@"C:\Personal");
ListContents(info);
}
public void ListContents(DirectoryInfo info)
{
foreach(var dir in info.GetDirectories())
{
ListContents(dir);
}
foreach(var file in info.GetFiles())
{
Console.WriteLine(file.FullName);
}
}