命名空间
using System.Collections; using System.IO;
源码
public class FileAccess { //储存所有文件夹 private readonly ArrayList dirList; public FileAccess() { dirList = new ArrayList(); } /// <summary> /// 获取指定目录下的所有文件名 /// </summary> /// <param name="dirPath">指定目录</param> /// <returns></returns> public ArrayList GetFileName(string dirPath) { ArrayList list = new ArrayList(); if (Directory.Exists(dirPath)) { list.AddRange(Directory.GetFiles(dirPath)); } return list; } /// <summary> /// 获取指定目录下所有文件夹及子文件夹 /// </summary> /// <param name="dirPath">指定目录</param> public void GetDirs(string dirPath) { string[] folders = Directory.GetDirectories(dirPath); if (folders.Length > 0) { foreach (string folder in folders) { dirList.Add(folder); GetDirs(folder); } } } /// <summary> /// 获取给出文件夹及其子文件夹下的所有文件名(文件名为路径加文件名及后缀) /// </summary> /// <param name="rootPath">指定文件夹</param> /// <returns></returns> public ArrayList GetAllFileName(string rootPath) { //先清空文件夹集合 dirList.Clear(); //获取包括指定目录内的所有文件夹 dirList.Add(rootPath); GetDirs(rootPath); ArrayList resultList = new ArrayList(); //遍历文件夹获取所有文件名 foreach (string dir in dirList) { resultList.AddRange(GetFileName(dir)); } return resultList; } }