62,046
社区成员
发帖
与我相关
我的任务
分享
public void GetAllFile(DirectoryInfo di, List<FileInfo> filist)
{
FileInfo[] fis = di.GetFiles();
if (fis.Length > 0)
{
filist.AddRange(fis.ToList());
}
DirectoryInfo[] dis = di.GetDirectories();
for (int i = 0; i < dis.Length; i++)
{
GetAllFile(dis[i], filist);
}
}
DirectoryInfo di = new DirectoryInfo("D:\\aa");
List<FileInfo> fis = new List<FileInfo>();
GetAllFile(di, fis);
private void GetAllFilesRecursion(string path, List<string> files)
{
DirectoryInfo dInfo = new DirectoryInfo(path);
FileInfo[] fs = dInfo.GetFiles();
foreach (FileInfo f in fs)
{
files.Add(f.FullName);
}
DirectoryInfo[] ds = dInfo.GetDirectories();
foreach (DirectoryInfo d in ds)
{
GetAllFilesRecursion(d.FullName, files);
}
}
private List<string> GetAllFiles(string path)
{
List<string> files = new List<string>();
Queue<string> qs = new Queue<string>();
qs.Enqueue(path);
while (qs.Count > 0)
{
DirectoryInfo dInfo = new DirectoryInfo(qs.Dequeue());
FileInfo[] fs = dInfo.GetFiles();
foreach (FileInfo f in fs)
{
files.Add(f.FullName);
}
DirectoryInfo[] ds = dInfo.GetDirectories();
foreach (DirectoryInfo d in ds)
{
qs.Enqueue(d.FullName);
}
}
return files;
}