参考:http://www.cnblogs.com/skylaugh/archive/2012/09/23/2698850.html
DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);
//遍历文件夹
foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories())
this.listBox1.Items.Add(NextFolder.Name);
//遍历文件
foreach(FileInfo NextFile in TheFolder.GetFiles())
this.listBox2.Items.Add(NextFile.Name);
---------------------------------------------------------------------------------------------------------------
如何获取指定目录包含的文件和子目录
1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找;
2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找;
3. DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInfo[],支持通配符查找;
如何获取指定文件的基本信息;
FileInfo.Exists:获取指定文件是否存在;
FileInfo.Name,FileInfo.Extensioin:获取文件的名称和扩展名;
FileInfo.FullName:获取文件的全限定名称(完整路径);
FileInfo.Directory:获取文件所在目录,返回类型为DirectoryInfo;
FileInfo.DirectoryName:获取文件所在目录的路径(完整路径);
FileInfo.Length:获取文件的大小(字节数);
FileInfo.IsReadOnly:获取文件是否只读;
FileInfo.Attributes:获取或设置指定文件的属性,返回类型为FileAttributes枚举,可以是多个值的组合
FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分别用于获取文件的创建时间、访问时间、修改时间;
递归遍历文件夹和子文件夹:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 7 namespace 遍历文件夹和子文件夹 8 { 9 class Program 10 { 11 private static FileStream fs; 12 private static StreamWriter sw; 13 14 static void Main(string[] args) 15 { 16 string path; 17 int leval=0; 18 19 Console.WriteLine("请输入需要列出内容的文件夹的完整路径和文件名:"); 20 path=Console.ReadLine(); 21 path.Replace('\\','/'); 22 23 fs = new FileStream("result.txt", FileMode.Create); 24 sw = new StreamWriter(fs); 25 26 //开始写入文件 27 sw.WriteLine("遍历结果如下:"); 28 sw.WriteLine(path); 29 30 listDirectory(path,leval); 31 32 //清空缓冲区 33 sw.Flush(); 34 //关闭流 35 sw.Close(); 36 fs.Close(); 37 Console.WriteLine("请按任意键继续……"); 38 Console.ReadKey(); 39 } 40 41 /// <summary> 42 /// 列出path路径对应的文件夹中的子文件夹和文件 43 /// 然后再递归列出子文件夹内的文件和文件夹 44 /// </summary> 45 /// <param name="path">需要列出内容的文件夹的路径</param> 46 /// <param name="leval">当前递归层级,用于控制输出前导空格的数量</param> 47 private static void listDirectory(string path,int leval) 48 { 49 DirectoryInfo theFolder = new DirectoryInfo(@path); 50 51 leval++; 52 53 //遍历文件 54 foreach (FileInfo NextFile in theFolder.GetFiles()) 55 { 56 for (int i = 0; i < leval; i++) sw.Write('\t'); 57 sw.Write("-->"); 58 sw.WriteLine(NextFile.Name); 59 } 60 61 //遍历文件夹 62 foreach (DirectoryInfo NextFolder in theFolder.GetDirectories()) 63 { 64 for (int i = 0; i < leval; i++) sw.Write('\t'); 65 sw.Write("--)"); 66 sw.WriteLine(NextFolder.Name); 67 listDirectory(NextFolder.FullName, leval); 68 } 69 } 70 } 71 }