[英]Iterate through a root directory and get all files in it?
嗨,我正在创建一个应用程序,我想知道该文件夹下的每个文件.ie如何遍历根目录并让每个文件访问列表一次。
如果您只需要一次列出所有内容,则可以使用包含该选项的GetFiles的重载。
string[] filePaths = Directory.GetFiles(@"c:\MyDir\", "*.*", SearchOption.AllDirectories);
显然,在Web应用程序中,您可能无法访问“c:\\ MyDir”,因此您可以将其替换为包含MapPath调用结果的变量,如下所示:
var rootDir = Server.MapPath("~/App_Data");
使用Directory.EnumerateFiles(字符串,字符串,SearchOption)函数SearchOption.AllDirectories
:
foreach (var file in Directory.EnumerateFiles(@"c:\", "*.txt", SearchOption.AllDirectories))
{
// Do stuff here
}
EnumerateFiles方法比GetFiles方法快,因为它实际上只返回枚举器,并且在它们为红色之前实际上不访问文件。
您可以使用DirectoryInfo和FileInfo类以及递归函数。
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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.