C# File文件、Path、Directory路径操作

Path和Directory类的区别

Path和Directory这两个词意思有重叠,都是路径的意思,但实际有差异:

  • Path是全称,包含文件夹路径、文件名和文件后缀名

  • Directory不是全称,只包含文件夹路径,不能包含文件名和文件后缀名

常用File类接口

  1. File.Exists(Application.ExecutablePath):文件是否存在
  2. 剪切(Move)、复制(Copy)、删除(Delete)等接口不再介绍
  3. 读取文本文件

常用Path类接口

以文件 E:\AAA\BBB\CCC\Test.exe 为例子,说明各个接口:

  1. Path.GetDirectoryName():也就是”E:\AAA\BBB\CCC”

  2. Path.GetFileName():得到带扩展名的文件名,也就是”Test.exe”

  3. Path.GetFileNameWithoutExtension():也就是”Test”

  4. Path.GetExtension():也就是”.exe”

  5. Path.GetFileNameWithoutExtension():返回 Test

  6. Path.Combine(path1, path2):拼接合并文件路径

  7. Path.GetFullPath(path) :得到文件的绝对路径,可以根据相对路径获得绝对路径。比如:路径中含有…/…/之类的,可以得到绝对路径。

常用Directory类接口

  1. Directory.GetParent().FullName:获取父文件夹路径,也就是”E:\AAA\BBB\CCC”

  2. Directory.Exists():文件夹路径是否存在

  3. Directory.CreateDirectory(path)用法:创建路径

  4. Directory.Move(sourceDirName, destDirName):移动

  5. Directory.Delete(path):删除

  6. Directory.GetFiles(string path, string searchPattern, SearchOption searchOption):获取指定目录下的所有文件

    // 获取指定目录下所有 .meta 后缀的文件
    string[] parentPathFilenames = Directory.GetFiles(parentPath, "*.meta", SearchOption.TopDirectoryOnly);
    
  7. Directory.EnumerateFiles(string path, string searchPattern, SearchOption searchOption):获取指定目录下的所有文件,执行效率比 GetFiles 快

详见:
https://blog.csdn.net/BillCYJ/article/details/106261318