File io 查找目录中除一个子目录外的所有文件的最简单方法?
在.NET中File io 查找目录中除一个子目录外的所有文件的最简单方法?,file-io,.net-4.0,directory,File Io,.net 4.0,Directory,在.NET中 DirectoryInfo dirInfo = new DirectoryInfo(searchDirectory); FileInfo[] allFiles = dirInfo.GetFiles("*.*", SearchOption.AllDirectories); 将获取所有文件,包括其子目录中的所有文件 如果我想要除一个子目录以外的所有文件呢 我能做到的最简单和/或最有效的方法是什么 我使用的是.NET4.0,c#试试这个: Directo
DirectoryInfo dirInfo = new DirectoryInfo(searchDirectory);
FileInfo[] allFiles = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
将获取所有文件,包括其子目录中的所有文件
如果我想要除一个子目录以外的所有文件呢
我能做到的最简单和/或最有效的方法是什么
我使用的是.NET4.0,c#试试这个:
DirectoryInfo dirInfo = new DirectoryInfo(searchDirectory);
List<FileInfo> allFiles = new List<FileInfo>();
allFiles.AddRange(dirInfo.GetFiles());
foreach (DirectoryInfo di in dirInfo.GetDirectories())
{
if (di.Name != "DirIDontWant")
{
allFiles.AddRange(di.GetFiles("*.*", SearchOption.AllDirectories));
}
}
DirectoryInfo dirInfo=newdirectoryinfo(searchDirectory);
List allFiles=新列表();
allFiles.AddRange(dirInfo.GetFiles());
foreach(dirInfo.GetDirectories()中的DirectoryInfo di)
{
if(di.Name!=“DirIDontWant”)
{
allFiles.AddRange(di.GetFiles(“*.*”,SearchOption.AllDirectories));
}
}
正如MSDN文章中所建议的,递归地使用深度优先方法:
IntelliSense和MSDN帮助我解决了这个问题:
List<string> lFiles = new List<string>();
lFiles.AddRange(Directory.GetFiles(lPath, "*", SearchOptions.AllDirectories));
List lFiles=new List();
AddRange(Directory.GetFiles(lPath,“*”,SearchOptions.AllDirectories));
GetFiles函数是在MSDN上定义的。第一个参数是要搜索的目录;第二个参数是过滤器(*是获取所有文件的通配符),第三个参数是一个标志,指示是只获取指定目录中的文件还是所有子目录中的文件。您是指除一个目录外的所有文件和目录?我的意思是我希望所有文件都包含目录中的所有文件,包括除一个子目录外所有子目录中的所有文件。我相信最后一个参数应为
SearchOption
(非复数)。
List<string> lFiles = new List<string>();
lFiles.AddRange(Directory.GetFiles(lPath, "*", SearchOptions.AllDirectories));