目录
了解Path之前 首先需要了解一下 绝对路径和相对路径
相对路径:当前程序运行所在的路径。
绝对路径:文件在计算机的完整路径。
例如:
C:\Users\source\repos\LudwigIO\LudwigIO\bin\Debug\LudwigIO.exe 这个就是绝对路径
绝对路径完全指定位置:无论当前位置如何,都可以唯一标识文件或目录。
而 .\bin\Debug\LudwigIO.exe 就是相对路径
相对路径指定部分位置:定位使用相对路径指定的文件时,当前位置用作起点。
1.Path是一个静态类
2.类的 Path 字段以及类的某些成员 Path 的确切行为依赖于平台
3.类的 Path 大多数成员不会与文件系统交互,并且不验证路径字符串指定的文件是否存在。
4. Path 修改路径字符串的类成员(例如 ChangeExtension)对文件系统中的文件名称没有影响。
public string path = "G://111//1.png";
此 path供以下示例使用
ChangeExtension(String, String)
更改路径字符串的扩展名。
- public void ChangeExtension() {
- string _path = Path.ChangeExtension(path, "jpg");
- Console.WriteLine($"新的拓展名:{_path}");
- }
![]()
注:这个方法并不会真的改变我的文件后缀名,只是得到了一个新的路径
Combine(String, String)
将两个字符串组合成一个路径。
Combine(String, String, String)
将三个字符串组合成一个路径。
Combine(String, String, String, String)
将四个字符串组合成一个路径。
Combine(String[])
将字符串数组组合成一个路径。
- public void Combine() {
- string _path = Path.Combine(path, "jpg");
- Console.WriteLine($"路径连接:{_path}");
- }
![]()
注:路径链接只是得到一个拼接路径并不代表真的有这个路径
GetDirectoryName(ReadOnlySpan
返回由字符范围表示的指定路径的目录信息。
GetDirectoryName(String)
返回指定路径的目录信息。
- public void GetDirectoryName() {
- string _path = Path.GetDirectoryName(path);
- Console.WriteLine($"获取文件路径:{_path}");
- }
![]()
GetExtension(ReadOnlySpan
返回由只读字符范围表示的文件路径的扩展名。
GetExtension(String)
返回指定路径字符串的扩展名(包括句点“.”)。
- public void GetExtension() {
- string _path = Path.GetExtension(path);
- Console.WriteLine($"获取文件后缀名:{_path}");
- }
![]()
GetFileName(ReadOnlySpan
返回由只读字符范围表示的文件路径的文件名和扩展名。
GetFileName(String)
返回指定路径字符串的文件名和扩展名。
- public void GetFileName() {
- string _path = Path.GetFileName(path);
- Console.WriteLine($"获取文件名+拓展名:{_path}");
- }
![]()
GetFileNameWithoutExtension(ReadOnlySpan
返回文件名,该文件名不带由只读字符范围表示的文件路径扩展名。
GetFileNameWithoutExtension(String)
返回不具有扩展名的指定路径字符串的文件名。
- public void GetFileNameWithoutExtension() {
- string _path = Path.GetFileNameWithoutExtension(path);
- Console.WriteLine($"获取文件名 不加 拓展名:{_path}");
- }
![]()
GetFullPath(String)
返回指定路径字符串的绝对路径。
GetFullPath(String, String)
从完全限定的基路径和相对路径返回绝对路径。
- public void GetFullName() {
- string fileName = "myfile.ext";
- string path1 = @"mydir";
- string path2 = @"\mydir";
- string _path = Path.GetFullPath(fileName);
- Console.WriteLine($"获取全部路径1:{_path}");
- _path = Path.GetFullPath(path1);
- Console.WriteLine($"获取全部路径2:{_path}");
- _path = Path.GetFullPath(path2);
- Console.WriteLine($"获取全部路径3:{_path}");
- }

注:不用 \ 修饰的路径会取到当前程序运行路径+传入路径的拼接(绝对路径)
带有 \ 的路径返回的是当前输入(相对路径)
同样 输出的路径 不代表当前真的存在这个路径
GetInvalidFileNameChars()
获取包含不允许在文件名中使用的字符的数组。
- public void GetInvalidFileNameChars() {
- char[] invalidFileNameChars = Path.GetInvalidFileNameChars();
- string _all = string.Join("", invalidFileNameChars);
- Console.WriteLine($"不允许在文件名中使用的字符的数组 :{_all}");
- }
![]()
有些乱码 没有深究 有兴趣的可以研究一下
GetInvalidPathChars()
获取包含不允许在路径名中使用的字符的数组。
- public void GetInvalidPathChars() {
- char[] invalidPathChars = Path.GetInvalidPathChars();
- string _all = string.Join("", invalidPathChars);
- Console.WriteLine($"不允许在路径中使用的字符的数组 :{_all}");
- }
![]()
有些乱码 没有深究 有兴趣的可以研究一下
GetPathRoot(ReadOnlySpan
从指定字符范围包含的路径中获取根目录信息。
GetPathRoot(String)
从指定字符串包含的路径中获取根目录信息。
- public void GetPathRoot() {
- string _pathRoot = Path.GetPathRoot(path);
- Console.WriteLine($"获取根目录:{_pathRoot}");
- string _pathRoot1 = Path.GetPathRoot(@".\1.png");
- Console.WriteLine($"获取根目录:{_pathRoot1}");
- string _pathRoot2 = Path.GetPathRoot(@"\1.png");
- Console.WriteLine($"获取根目录:{_pathRoot2}");
- string _pathRoot3 = Path.GetPathRoot(Path.GetFullPath(@"\1.png"));
- Console.WriteLine($"获取根目录:{_pathRoot3}");
- }

注:相对路经无法取到根目录 绝对路径可以
GetRandomFileName()
返回随机文件夹名或文件名。
- public void GetRandomFileName() {
- string randomFileName = Path.GetRandomFileName();
- Console.WriteLine($"获取随机文件名:{randomFileName}");
- }
![]()
注:并不存在该文件 只是给你随机一个名字出来
GetTempFileName()
在磁盘上创建一个唯一命名的零字节临时文件,并返回该文件的完整路径。
- public void GetTempFileName() {
- string tempFileName = Path.GetTempFileName();
- Console.WriteLine($"获取临时文件路径:{tempFileName}");
- }
![]()
注:真实存在的文件
GetTempPath()
返回当前用户的临时文件夹的路径。
- public void GetTempPath() {
- string tempPath = Path.GetTempPath();
- Console.WriteLine($"获取临时文件夹路径{tempPath}");
- }
![]()
HasExtension(ReadOnlySpan
确定指定字符范围表示的路径是否包含文件扩展名。
HasExtension(String)
确定路径是否包括文件扩展名。
- public void HasExtension() {
- string tempPath = @".\1.png";
- bool has = Path.HasExtension(tempPath);
- Console.WriteLine($"是否包含后缀名:{has}");
- string tempPath2 = @".\1\";
- bool has1 = Path.HasExtension(tempPath2);
- Console.WriteLine($"是否包含后缀名:{has1}");
- }
![]()
IsPathRooted(ReadOnlySpan
返回一个值,该值指示表示文件路径的指定字符范围是否包含根。
IsPathRooted(String)
返回一个值,该值指示指定的路径字符串是否包含根。
- public void IsPathRooted() {
- string tempPath = @".\1.png";
- bool has = Path.IsPathRooted(tempPath);
- Console.WriteLine($"是否包含根:{has}");
- string tempPath2 = @"G:\111\1.png";
- bool has1 = Path.IsPathRooted(tempPath2);
- Console.WriteLine($"是否包含根:{has1}");
- }
![]()