遍历文件名程序
//第一种方法/ static ArrayList GetAllFiles(string path) { ArrayList ret = new ArrayList(); ret.AddRange(Directory.GetFiles(path)); foreach (string subDirPath in Directory.GetDirectories(path)) { ret.AddRange(GetAllFiles(subDirPath)); } return ret; } 用于C:\Windows的话,约12000个文件,不超过3秒钟 //第二种方法///4行搞定。。委托 static List<string> GetAllFiles(string path) { List<string> ret = new List<string>(); ret.AddRange(Directory.GetFiles(path)); Array.ForEach(Directory.GetDirectories(path), delegate(string path1){ ret.AddRange(GetAllFiles(path1));}); return ret; } 以上返回的全是包含路径的如c:\file.exe //第三种方法 只有文件名 static void Main(string[] args ) { DirectoryInfo derectory = new DirectoryInfo(@"G:\"); foreach (var file in directory.GetFiles()) { Console.WriteLine("文件名有{0}",file); } Console.ReadLine(); }
获取本地G盘目录下的所有文件名,注意,仅仅只有文件名称,不包含文件夹名称,如果想得到全路径,需要使用FullName属性:
foreach (var file in directory.GetFiles()) { Console.WriteLine("文件名有{0}",file.FullName); }
--------------------------------------------------
GetFiles获取的就是当前文件夹下面的文件,子文件夹不包括!
MSDN上面是这样说的:
GetFiles(String) 返回指定目录中的文件的名称。
GetFiles(String, String) 返回指定目录中与指定搜索模式匹配的文件的名称。
GetFiles(String, String, SearchOption) 返回指定目录中文件的名称,该目录与指定搜索模式匹配并使用某个值确定是否在子目录中搜索。