我用String[] files=Directory.GetFiles(sPath,"*.txt")获取指定目录下的所有文本文件*.txt,
问题是一次中能针对一个目录;有没有办法可以一次获取指定目录中所有子目录下的文件,就跟遍历一样列
出来,或者说直接获取E:\中所有子目录的文本文件*.txt;期待各位高手赐教,谢谢!
问题是一次中能针对一个目录;有没有办法可以一次获取指定目录中所有子目录下的文件,就跟遍历一样列
出来,或者说直接获取E:\中所有子目录的文本文件*.txt;期待各位高手赐教,谢谢!
using System.Collections.Generic;
using System.Text;
using System.IO;namespace 递归遍历文件夹
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please input the directory."+"("+" Such as F:"+"\\"+"text"+")");
string dir = Console.ReadLine().ToString();
Console.WriteLine("深度遍历文件夹");
listDir(dir);
Console.WriteLine("\n列出了所有子文件夹和目录,没有说明空文件夹");
Console.ReadLine();
}
private static void listDir(string dirPath)
{
if (!Directory.Exists(dirPath))//判断给定的路径是否存在
{
Console.WriteLine("根本没这个文件夹!");
return;
}
//定义一个DirectoryInfo对象
DirectoryInfo di = new DirectoryInfo(dirPath); //通过GetFiles方法,获取di目录中的所有文件名称
foreach (FileInfo fi in di.GetFiles("*.txt"))
{
Console.WriteLine(fi.FullName);
}
DirectoryInfo[] dis = di.GetDirectories();
if (dis.Length > 0)
{
for (int i = 0; i < dis.Length; i++)
{
listDir(dis[i].FullName);
}
} }
}
}
那要是它的子目录下还有好多路径的话,去回所有目录下的所有*.txt,岂不很麻烦,请赐教,将不胜感激!
DirectoryInfo[] dis = di.GetDirectories();
if (dis.Length > 0)
{
for (int i = 0; i < dis.Length; i++)
{
listDir(dis[i].FullName);
}
}