.Net文件操作(查询、移动)
一.遍历指定目录下的所有文件
public class FileUtil { /// <summary> /// 遍历 rootdir目录下的所有文件 /// </summary> /// <param name="rootdir">目录名称</param> /// <returns>该目录下的所有文件</returns> public StringCollection GetAllFiles(string rootdir) { StringCollection result = new StringCollection(); GetAllFiles(rootdir, result); return result; } /// <summary> /// 作为遍历文件函数的子函数 /// </summary> /// <param name="parentDir">目录名称</param> /// <param name="result">该目录下的所有文件</param> public void GetAllFiles(string parentDir, StringCollection result) { //获取目录parentDir下的所有的子文件夹 string[] dir = Directory.GetDirectories(parentDir); for (int i = 0; i < dir.Length; i++) { GetAllFiles(dir[i], result); } //获取目录parentDir下的所有的文件,并过滤得到所有的文件 string[] file = Directory.GetFiles(parentDir); for (int i = 0; i < file.Length; i++) { result.Add(file[i]); } } }
使用方法。传入的目录为项目的文件夹,能遍历文件夹中的文件夹,得到所有的文件路径。
FileUtil util = new FileUtil(); StringCollection list = util.GetAllFiles("论文");
二.文件移动
在System.IO.File类上,有对文件进行操作的方法。下面的例子是将“论文”文件夹中所有文件(包括里面文件夹中的文件)移动到另外的“论文2”文件夹。
FileUtil util = new FileUtil(); StringCollection list = util.GetAllFiles("论文"); foreach (var item in list) { FileInfo fi = new FileInfo(item); var name = fi.Name;//文件名 if (!System.IO.File.Exists("论文2\\" + name)) { System.IO.File.Move(item, "论文2\\" + name);//2个文件在不同目录则是移动,如果在相同目录下则是重命名 } }