C#的Path 类使用说明
一:Path 类简单说明
1)对包含文件或目录路径信息的 String 实例执行操作。 这些操作是以跨平台的方式执行的。
2)路径是提供文件或目录位置的字符串。 路径不一定指向磁盘上的位置。例如,路径可能映射到内存中或设备上的位置。
3)Path类的所有成员都是静态的 ,因此无需路径实例即可调用。
二:Path 类的字段
字段 | 字段说明 |
---|---|
AltDirectorySeparatorChar | 提供平台特定的替换字符,该替换字符,用于在反映分层文件系统组织的路径字符串中,分隔目录级别。 |
DirectorySeparatorChar | 提供平台特定的字符,该字符用于在反映分层文件系统组织的路径字符串中,分隔目录级别。 |
PathSeparator | 用于在环境变量中,分隔路径字符串的平台特定的分隔符。 |
VolumeSeparatorChar | 提供平台特定的卷的分隔符。 |
1)使用举例:
Console.WriteLine($"Path的目录分隔字符: '{Path.DirectorySeparatorChar}'");
Console.WriteLine($"Path的Alt目录分隔符: '{Path.AltDirectorySeparatorChar}'");
Console.WriteLine($"Path的路径分隔符: '{Path.PathSeparator}'");
Console.WriteLine($"Path的卷的分隔符字符: '{Path.VolumeSeparatorChar}'");
2)运行结果:
Path的目录分隔字符: '\' Path的Alt目录分隔符: '/' Path的路径分隔符: ';' Path的卷的分隔符字符: ':' |
三:Path 类的方法
字段 | 字段说明 |
---|---|
ChangeExtension(String, String) | 更改路径字符串的扩展名 |
Combine(String, String) | 将两个字符串,组合成一个路径。 |
GetDirectoryName(String) | 返回指定路径的目录信息。 |
GetExtension(String) | 返回指定路径字符串的扩展名(包括句点“.”)。 |
GetFileName(String) | 返回指定路径字符串的文件名和扩展名。 |
GetFileNameWithoutExtension(String) | 返回不具有扩展名的指定路径字符串的文件名。 |
GetFullPath(String) | 返回指定路径字符串的绝对路径。 |
GetInvalidFileNameChars() | 获取包含不允许在文件名中使用的字符的数组。 |
GetInvalidPathChars() | 获取包含不允许在路径名中使用的字符的数组。 |
GetPathRoot(String) | 从指定字符串包含的路径中获取根目录信息。 |
GetRandomFileName() | 返回随机文件夹名或文件名。 |
GetTempFileName() | 在磁盘上创建一个,唯一命名的零字节临时文件,并返回该文件的完整路径。 |
GetTempPath() | 返回当前用户的临时文件夹的路径。 |
HasExtension(String) | 确定路径是否包括文件扩展名。 |
IsPathRooted(String) | 返回一个值,该值指示指定的路径字符串是否包含根。 |
1: Path.ChangeExtension(String, String) 的方法介绍
1)作用:更改路径字符串的扩展名。
2)语法:
public static string ChangeExtension (string path, string extension);
3)使用举例:
string goodFileName = @"C:\Users\myfile.com.extension";
string badFileName = @"C:\Users\\";
string result;
result = Path.ChangeExtension(goodFileName, ".old");//替换后缀名
Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'", goodFileName, result);
result = Path.ChangeExtension(goodFileName, "");//替换后缀名
Console.WriteLine("ChangeExtension({0}, '') returns '{1}'", goodFileName, result);
result = Path.ChangeExtension(badFileName, ".old");//替换后缀名
Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'", badFileName, result);
4)运行结果:
ChangeExtension(C:\Users\myfile.com.extension, '.old') returns 'C:\Users\myfile.com.old' ChangeExtension(C:\Users\myfile.com.extension, '') returns 'C:\Users\myfile.com.' ChangeExtension(C:\Users\\, '.old') returns 'C:\Users\\.old' |
2: Path.Combine 的方法介绍
1)作用:将多个字符串组合成一个路径。
2)语法:
public static string Combine (string path1, string path2);
3)使用举例:
string path1 = "c:\\temp";
string path2 = "subdir\\file.txt";
string combination = Path.Combine(path1, path2);
Console.WriteLine("将两个字符串 '{0}' 和 '{1}'组合成一个路径, 合成结果是: {2}'{3}'",
path1, path2, Environment.NewLine, combination);
4)运行结果:
将两个字符串 'c:\temp' 和 'subdir\file.txt'组合成一个路径, 合成结果是: 'c:\temp\subdir\file.txt' |
3: Path.GetDirectoryName(String) 的方法介绍
1)作用:返回指定路径的目录信息。返回String,表示返回path 的目录信息。如果 path 表示根目录,则返回或为 null,则为 null。 如果 path 不包含目录信息,则返回 Empty。
2)语法:
public static string GetDirectoryName (string path);
3)使用举例:
string filePath = @"C:\MyDir\MySubDir\myfile.ext";
string directoryName;
directoryName = Path.GetDirectoryName(filePath);
Console.WriteLine("获取目录名称('{0}') ,返回 '{1}'", filePath, directoryName);
4)运行结果:
获取目录名称('C:\MyDir\MySubDir\myfile.ext') ,返回 'C:\MyDir\MySubDir' |
5)使用注意:
在大多数情况下,此方法返回的字符串由路径中所有字符组成,但不包括最后一个目录分隔符。 目录分隔符可以是 (/) 或 DirectorySeparatorChar,AltDirectorySeparatorChar。 如果路径由根目录(如“c:\”)组成, null 则返回该目录。
4: Path.GetExtension(String) 的方法介绍
1)作用:返回指定路径字符串的扩展名(包括句点“.”)。此方法返回的字符串string,是指定路径的扩展名(包含句点“.”)、或 null、或 Empty。 如果 path 为 null,则 GetExtension(String) 返回 null。 如果 path 不具有扩展名信息,则 GetExtension(String) 返回 Empty。
2)语法:
public static string GetExtension (string path);
3)使用举例:
string fileName = @"C:\Users\Administrator\myfile.ext";
string path = @"C:\Users\mydir.old\";
string extension;
extension = Path.GetExtension(fileName);
Console.WriteLine("GetExtension('{0}') returns '{1}'",
fileName, extension);
extension = Path.GetExtension(path);
Console.WriteLine("GetExtension('{0}') returns '{1}'",
path, extension);
4)运行结果:
GetExtension('C:\Users\Administrator\myfile.ext') returns '.ext' GetExtension('C:\Users\mydir.old\') returns '' |
5)使用注意:
此方法通过搜索path句点 (.) 来获取扩展path,从最后一个字符开始,然后继续到第一个字符path。 如果在某个或AltDirectorySeparatorChar或者DirectorySeparatorChar字符之前找到句点,则返回包含句点及其后面的字符的字符串;否则String.Empty返回。
5: Path.GetFileName(String) 和GetFileNameWithoutExtension(String) 的方法介绍
1)作用:GetFileName(string) 的作用是从中获取文件名和扩展名组合起来的字符串。返回的String,是path 中最后的目录分隔符后的字符。 如果 path 的最后一个字符是目录或卷分隔符,则此方法返回 Empty。 如果 path 为 null,则此方法返回 null。
GetFileNameWithoutExtension(String) 的作用是返回指定路径字符串下,不具有扩展名的文件名。
2)语法:
public static string GetFileName (string path);
public static string GetFileNameWithoutExtension (string path);
3)使用举例:
string fileName = @"C:\Users\Administrator\freedom.doc";
string path = @"C:\Users\Administrator\";
string result;
result = Path.GetFileName(fileName);
Console.WriteLine("GetFileName('{0}') returns '{1}'",
fileName, result);
result = Path.GetFileName(path);
Console.WriteLine("GetFileName('{0}') returns '{1}'",
path, result);
result = Path.GetFileNameWithoutExtension(fileName);
Console.WriteLine("GetFileName('{0}') returns '{1}'",
fileName, result);
result = Path.GetFileName(path);
Console.WriteLine("GetFileName('{0}') returns '{1}'",
path, result);
4)运行结果:
GetFileName('C:\Users\Administrator\freedom.doc') returns 'freedom.doc' GetFileName('C:\Users\Administrator\') returns '' GetFileName('C:\Users\Administrator\freedom.doc') returns 'freedom' GetFileName('C:\Users\Administrator\') returns '' |