美文网首页
C# Directory 遍历文件夹

C# Directory 遍历文件夹

作者: super41 | 来源:发表于2021-03-23 17:44 被阅读0次
前言:编辑器拓展常常要访问到文件目录。所以文件相关的操作挺重要的。这里记录下遍历目录的方法:
  1. 这里先列举下会用到的类

    • FileInfo : 文件类(不包括目录)
    • DirectoryInfo : 目录类
    • FileSystemInfo :通用文件类,可以是文件,也可以是目录。
      可以通过FileSystemInfo.Attributes 来判断是不是目录:
      bool isDir = fileSystemInfo.Attributes == FileAttributes.Directory;
  2. 遍历目录里的所有文件

    • 获取一个目录里的所有文件
        public void AccessAllFile(string dirPath)
        {
          DirectoryInfo directoryInfo = new DirectoryInfo(dirPath);
          //SearchOption.AllDirectories 代表遍历子文件夹。
          //SearchOption.TopDirectoryOnly 或 不加参数 则只访问第一层文件
          FileInfo[] fileInfos = directoryInfo.GetFiles("*", SearchOption.AllDirectories);
          for (int i = 0; i < fileInfos.Length; i++)
          {
              Log.Debug($"name:{fileInfos[i].Name}");
          }
        }

  • 获取一个目录里的所有文件夹
        public void AccessAllDir(string dirPath)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(dirPath);
            DirectoryInfo[] dirInfos = directoryInfo.GetDirectories("*", SearchOption.AllDirectories);
            for (int i = 0; i < dirInfos.Length; i++)
            {
                Log.Debug($"name:{dirInfos[i].Name}");
            }
        }
  • 获取一个目录的的所有文件夹和文件(方法1)
        public void AccessAllFileAndDir(string dirPath)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(dirPath);
            FileSystemInfo[] fileSystemInfos = directoryInfo.GetFileSystemInfos("*",SearchOption.AllDirectories);
            for (int i = 0; i < fileSystemInfos.Length; i++)
            {
                var file = fileSystemInfos[i];
                Log.Debug($"isDir:{file.Attributes == FileAttributes.Directory} name:{file.Name}");
            }
        }
  • 获取一个目录的的所有文件夹和文件(方法2:自己递归)
        public void AccessAllFileAndDir2(string dirPath)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(dirPath);
            FileSystemInfo[] fileSystemInfos = directoryInfo.GetFileSystemInfos();
            for (int i = 0; i < fileSystemInfos.Length; i++)
            {
                var fileSystemInfo = fileSystemInfos[i];
                bool isDir = fileSystemInfo.Attributes == FileAttributes.Directory;
                if (isDir)
                {
                    Debug.Log($"dir name:{fileSystemInfo.Name}");
                    AccessAllFileAndDir2(fileSystemInfo.FullName);
                }
                else
                {
                    Debug.Log($"file name:{fileSystemInfo.Name}");
                }
            }
        }
  • 最后,附上一个删除目录里所有文件的方法,让一切归于平静...
        public void DeleteAllFile(string dir)
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(dir);
            FileSystemInfo[] fileSystemInfos = directoryInfo.GetFileSystemInfos();
            for (int i = 0; i < fileSystemInfos.Length; i++)
            {
                FileSystemInfo file = fileSystemInfos[i];
                bool isDir = file.Attributes == FileAttributes.Directory;
                if (isDir)
                {
                    Directory.Delete(file.FullName,true);
                }
                else
                {
                    File.Delete(file.FullName);
                }
            }
        }

相关文章

  • C# Directory 遍历文件夹

    前言:编辑器拓展常常要访问到文件目录。所以文件相关的操作挺重要的。这里记录下遍历目录的方法: 这里先列举下会用到的...

  • C# 文件相关操作

    一、文件夹 1.选择文件夹 2.文件夹相关操作 C#文件夹相关操作主要使用Directory类和Directory...

  • Python常规处理excel文件

    1. os.walk() :遍历制定文件夹下的所有文档 os.walk(): 返回Directory tree ...

  • C#获取文件

    C#遍历指定文件夹中的所有文件 DirectoryInfo TheFolder=new DirectoryInfo...

  • # [C# Directory类的操作]

    C# Directory类的操作 Directory类位于System.IO 命名空间。Directory类提供了...

  • windows dos 常用命令行 01

    dir (directory) :列出当前目录下的文件以及文件夹 md (make directory): 创建目...

  • windows常用命令集锦

    dir (directory) :列出当前目录下的文件以及文件夹 md (make directory): 创建目...

  • windows dos命令行

    dir (directory) :列出当前目录下的文件以及文件夹 md (make directory): 创建目...

  • pyqt-选择文件/文件夹

    选择文件夹:directory = QtWidgets.QFileDialog.getExistingDirect...

  • C#遍历文件夹或者文件

    收集学生作品后,每位同学都是一个文件夹,于是我需要核对哪些同学没有交作业,需要用到文件夹目录遍历来实现输出所有名单...

网友评论

      本文标题:C# Directory 遍历文件夹

      本文链接:https://www.haomeiwen.com/subject/gpgfhltx.html