.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个文件在不同目录则是移动,如果在相同目录下则是重命名
    }
}
原文地址:https://www.cnblogs.com/shadoll/p/15378877.html