c#遍历一个文件夹下的所有文件包括子文件夹【原】
2013-01-23 09:57
781 查看
/// <summary> /// 遍历目录所有文件 /// </summary> /// <param name="directory">目录</param> /// <param name="searchPattern">要查找的文件(*.txt)</param> /// <returns></returns> public static FileInfo[] GetFileList(DirectoryInfo directory, string searchPattern) { FileInfo[] fis = new FileInfo[0]; DirectoryInfo[] directorys = directory.GetDirectories(); foreach (DirectoryInfo di in directorys) { FileInfo[] fiss = GetFileList(di,searchPattern); AddNewArray<FileInfo>(ref fis, fiss); } AddNewArray<FileInfo>(ref fis, directory.GetFiles(searchPattern)); return fis; } /// <summary> /// 遍历目录所有文件大小 /// </summary> /// <param name="directory">目录</param> /// <param name="searchPattern">要查找的文件(*.txt)</param> /// <param name="symbol">是否带符号</param> /// <returns></returns> public static string GetFileListLength(DirectoryInfo directory, string searchPattern, bool symbol) { int fileListLength = 0; foreach (FileInfo fi in GetFileList(directory, searchPattern)) { fileListLength += (int)fi.Length; } return getSizeType(fileListLength, symbol); } /// <summary> /// 合并数组 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="A"></param> /// <param name="B"></param> public static void AddNewArray<T>(ref T[] A, T[] B)//合并数组,运用了一个范型,具体作用见下文 { T[] A1; A1 = (T[])A.Clone(); A = new T[A1.GetLength(0) + B.GetLength(0)]; for (int i = 0; i < A1.GetLength(0); i++) { A[i] = A1[i]; } for (int i = 0; i < B.GetLength(0); i++) { A[i + A1.GetLength(0)] = B[i]; } } /// <summary> /// 格式化大小符号 /// </summary> /// <param name="fileSize"></param> /// <param name="symbol">是否带符号</param> /// <returns></returns> public static string getSizeType(int fileSize, bool symbol) { string fileInfo = "0B"; if (fileSize > 0) { if (fileSize / 1024 > 0) { if (fileSize / 1024 / 1024 > 0) { if (fileSize / 1024 / 1024 / 1024 > 0) { fileInfo = (fileSize / 1024.0 / 1024.0 / 1024.0).ToString("0.0") + (symbol ? " GB" : ""); } else { fileInfo = (fileSize / 1024.0 / 1024).ToString("0.0") + (symbol ? " MB" : ""); } } else { fileInfo = (fileSize / 1024.0).ToString("0.0") + (symbol ? " KB" : ""); } } else { fileInfo = fileSize + (symbol ? " B" : ""); } } return fileInfo; }
相关文章推荐
- c#遍历一个文件夹下的所有文件包括子文件夹
- C#如何遍历一个文件夹下面所有的文件、包括子文件夹里面的文件?
- c#遍历一个文件夹下的所有文件包括子文件夹
- c#遍历一个文件夹下的所有文件包括子文件夹
- c#遍历一个文件夹下的所有文件包括子文件夹(转载)
- c#遍历一个文件夹下的所有文件包括子文件夹
- C#遍历一个文件夹下的所有文件包括子文件夹
- c#遍历一个文件夹下的所有文件包括子文件夹
- c#遍历一个文件夹下的所有文件包括子文件夹(转载)
- c#遍历一个文件夹下的所有文件包括子文件夹
- c#遍历一个文件夹下的所有文件包括子文件夹
- 遍历文件夹,取到一个文件夹下的所有文件包括子文件夹中的文件
- JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件
- 一个php函数,能够遍历一个文件夹下的所有文件和子文件夹
- python如何获取一个文件夹内包括子文件夹所有文件的名字和路径
- php编程,写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
- php遍历一个文件夹下的所有文件和子文件夹
- 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件
- 遍历一个文件夹下面所有的文件和子文件夹
- 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹