对包含文件或目录路径信息的 String
实例执行操作。 这些操作是以跨平台的方式执行的。
示例
下面的示例演示了一些主要成员Path
类。
using System;
using System.IO;
class Test
{
public static void Main()
{
string path1 = @"c:\temp\MyTest.txt";
string path2 = @"c:\temp\MyTest";
string path3 = @"temp";
if (Path.HasExtension(path1))
{
Console.WriteLine("{0} has an extension.", path1);
}
if (!Path.HasExtension(path2))
{
Console.WriteLine("{0} has no extension.", path2);
}
if (!Path.IsPathRooted(path3))
{
Console.WriteLine("The string {0} contains no root information.", path3);
}
Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3));
Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath());
Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName());
/* This code produces output similar to the following:
* c:\temp\MyTest.txt has an extension.
* c:\temp\MyTest has no extension.
* The string temp contains no root information.
* The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
* D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
* D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.
*/
}
}
注解
路径是提供的文件或目录的位置的字符串。 路径不一定指向磁盘; 上的位置例如,路径可能会映射到在内存中或在设备上的位置。 由当前平台确定路径的确切格式。 例如,在某些系统中,路径可以开始驱动器或卷字母开头,而此元素中不存在其他系统。 在某些系统中,文件路径可以包含扩展插件,指示存储在文件中的信息类型。 文件扩展名的格式与平台相关;例如,某些系统限制为三个字符,扩展和其他人不这样做。 当前平台还确定的字符用于分隔路径的元素集和指定路径时,不能使用的字符集。 由于这些差异的字段Path类的某些成员的具体行为以及Path类是依赖于平台的。
路径可以包含绝对或相对的位置信息。 绝对路径完全指定的位置: 文件或目录可以唯一地标识而不考虑当前的位置。 相对路径指定部分的位置: 定位使用相对路径指定的文件时,当前的位置使用作为起始点。 若要确定当前目录,请调用Directory.GetCurrentDirectory
。
.NET core 1.1 和更高版本和.NET Framework 4.6.2 及更高版本还支持对文件系统对象的是设备名称,如访问"\? \C:
"。
Windows 上的文件路径格式的详细信息,请参阅文件在 Windows 系统上的路径格式
。
大多数成员Path
类不使用文件系统进行交互,且不验证是否存在指定的路径字符串的文件。 Path
类成员的修改的路径字符串,如ChangeExtension
,文件系统中对文件的名称无效。 Path
成员将执行操作,但是,验证指定的路径字符串的内容并引发ArgumentException
异常,如果该字符串包含无效的路径字符串中从返回的字符中定义的字符GetInvalidPathChars
方法。例如,在基于 Windows
的桌面平台上无效路径字符可能包括引号 (")、 小于 (<)、 大于号 (>)、 竖线 (|),退格符 (\b)、 null (\0) 和 Unicode
字符 16 到 18 和 20 到 25。
成员Path
类使您能够快速轻松地执行常见操作,例如确定文件扩展名是否属于某个路径,并将两个字符串组合成一个路径名称。
所有成员Path
类是静态的因此可以无需具有路径的实例调用。
备注
在接受路径作为输入字符串的成员,该路径必须是格式正确,或引发的异常。 例如,如果路径是完全限定名称,但以空格开头,在类的方法不修整路径。
因此,该路径的格式不正确,并且会引发的异常。 同样的路径的组合不能完全限定两次。 例如,"c:\temp c:\windows
"还会引发异常在大多数情况下。 请确保使用接受一个路径字符串的方法时您的路径的格式是否正确。
在接受一个路径的成员,路径可以引用的文件或只是一个目录。 指定的路径也可以指相对路径或服务器和共享名称的通用命名约定 (UNC
) 路径。 例如,以下所有条件都可接受的路径:
- “
c:\\MyDir\\MyFile.txt
“在 C# 或 Visual Basic 中的”c:\MyDir\MyFile.txt
”。 - “
c:\\MyDir
“在 C# 或 Visual Basic 中的”c:\MyDir
”。 - “
MyDir\\MySubdir
“在 C# 或 Visual Basic 中的”MyDir\MySubDir
”。 - "
\\\\MyServer\\MyShare
“在 C# 中,或”\\MyServer\MyShare
"在 Visual Basic 中。
因为对字符串执行所有这些操作时,就无法验证结果在所有方案中有效。 例如,GetExtension
方法分析将传递给它一个字符串,并从该字符串返回的扩展名。 但是,这并不意味着在磁盘上存在具有该扩展名的文件。
通用 I/O 任务的列表,请参阅通用 I/O 任务。
字段
名称 | 说明 |
---|---|
AltDirectorySeparatorChar | 提供平台特定的替换字符,该替换字符用于在反映分层文件系统组织的路径字符串中分隔目录级别。 |
DirectorySeparatorChar | 提供平台特定的字符,该字符用于在反映分层文件系统组织的路径字符串中分隔目录级别。 |
InvalidPathChars | 提供平台特定的字符数组,这些字符不能在传递到 Path 类的成员的路径字符串参数中指定。 |
PathSeparator | 用于在环境变量中分隔路径字符串的平台特定的分隔符。 |
VolumeSeparatorChar | 提供平台特定的卷分隔符。 |
方法
名称 | 说明 |
---|---|
ChangeExtension(String, String) | 更改路径字符串的扩展名。 |
Combine(String[]) | 将字符串数组组合成一个路径。 |
Combine(String, String) | 将两个字符串组合成一个路径。 |
Combine(String, String, String) | 将三个字符串组合成一个路径。 |
Combine(String, String, String, String) | 将四个字符串组合成一个路径。 |
GetDirectoryName(String) | 返回指定路径字符串的目录信息。 |
GetExtension(String) | 返回指定的路径字符串的扩展名。 |
GetFileName(String) | 返回指定路径字符串的文件名和扩展名。 |
GetFileNameWithoutExtension(String) | 返回不具有扩展名的指定路径字符串的文件名。 |
GetFullPath(String) | 返回指定路径字符串的绝对路径。 |
GetInvalidFileNameChars() | 获取包含不允许在文件名中使用的字符的数组。 |
GetInvalidPathChars() | 获取包含不允许在路径名中使用的字符的数组。 |
GetPathRoot(String) | 获取指定路径的根目录信息。 |
GetRandomFileName() | 返回随机文件夹名或文件名。 |
GetTempFileName() | 在磁盘上创建磁唯一命名的零字节的临时文件并返回该文件的完整路径。 |
GetTempPath() | 返回当前用户的临时文件夹的路径。 |
HasExtension(String) | 确定路径是否包括文件扩展名。 |
IsPathRooted(String) | 返回一个值,该值指示指定的路径字符串是否包含根。 |