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个文件在不同目录则是移动,如果在相同目录下则是重命名
}
}

浙公网安备 33010602011771号