Path类简介
Path类是一个静态类, 主要是用于对目录或文件的路径进行"操作",但所有的"操作"对电脑磁盘上实际存在的目录或文件路径不会产生实质的影响,操作的只是一些字符串
Path类在System.IO的命名空间下,其后的几个文件操作类都在这个命名空间下
注意事项:
1)Path类的所有成员都是静态的,因此无需创建路径实例直接调用即可
2)Path类中的成员只有字段与方法,没有属性
3)是对包含目录或文件路径信息的String实例实施操作,操作是以跨平台的方式执行的
4)路径是提供目录或文件位置的字符串; 路径不一定指向磁盘上实际存在的位置,也有可能映射到内存中或设备上的位置
成员字段(可看做特殊标示符)
//用于分隔目录或路径的斜杠 /
char c1 = Path.AltDirectorySeparatorChar;
//用于分隔目录或路径的反斜杠 /
char c2 = Path.DirectorySeparatorChar;
//用于在环境变量中的分隔符 ;
char c3 = Path.PathSeparator;
//用于卷的分隔符 :
char c4 = Path.VolumeSeparatorChar;
Console.WriteLine("{0} {1} {2} {3}", c1, c2, c3, c4);
//已经过时的标示符,暂时可以用,但不建议使用
char[] cs = Path.InvalidPathChars;
for (int i = 0; i < cs.Length; i++)
{
Console.Write("{0}\t", cs[i]);
}
用于目录,文件,卷的分隔符
成员方法
成员方法 | 说明 |
string ChangeExtension(string path, string extension) | 更改路径字符串的扩展名 |
string Combine(params string[] paths) | 将字符串数组组合成一个路径 |
string Combine(string path1, string path2) | 将两个字符串组合成一个路径 |
string GetDirectoryName(string path) | 返回指定路径字符串的目录信息 |
string GetExtension(string path) | 返回指定路径字符串的扩展名 |
string GetFileName(string path) | 返回指定路径字符串的文件名和扩展名 |
string GetFileNameWithoutExtension(string path) | 返回不具有扩展名的指定路径字符串的文件名 |
string GetFullPath(string path) | 返回指定路径字符串的绝对路径 |
char[] GetInvalidFileNameChars() | 获取包含不允许在文件名中使用的字符的数组 |
char[] GetInvalidPathChars() | 获取包含不允许在路径名中使用的字符的数组 |
string GetPathRoot(string path) | 获取指定路径的根目录信息 |
string GetRandomFileName() | 返回随机文件夹名或文件名 |
string GetTempPath() | 返回当前用户的临时文件夹的路径 |
bool HasExtension(string path) | 返回路径是否包含文件的扩展名 |
bool IsPathRooted(string path) | 返回路径字符串是否包含根 |
//使用几个方法举例说明
//Path类中方法只是对字符串的操作,与实际文件没有任何关系,如下
//string path = @"C:\abc\zxa\fdsf\a.txt";//文件实际不存在
////1 "修改"文件扩展名 a.txt一>a.jpg
//path = Path.ChangeExtension(path, ".jpg");
//Console.WriteLine(path);
////2 将两个路径连接起来,可以处理末尾的 \ 问题。
//string s1 = @"c:\a\";
//string s2 = "b.txt";
//// string s3 = s1 + s2;
//string s3 = Path.Combine(s1, s2);
//Console.WriteLine(s3);
//string s1 = @"d:\abc\asd\zxc\a.txt";
////1.获取路径中的文件名 a.txt
//Console.WriteLine(Path.GetFileName(s1));
////2.获取路径中的目录,不包含文件名 d:\abc\asd\zxc
//Console.WriteLine(Path.GetDirectoryName(s1));
////3.获取文件名,不包含扩展名 a
//Console.WriteLine(Path.GetFileNameWithoutExtension(s1));
////4.只获取扩展名 .txt
//Console.WriteLine(Path.GetExtension(s1));
//获取当前用户的临时目录
// Console.WriteLine(Path.GetTempPath());
//获取一个随机的文件名,并在临时目录下创建这个文件
//如果已有该临时文件名会创建其他的名称
//假设 temp1 temp2 下次是temp3 提前创建此名称将其占据
//下次创建临时名称时会跳过 temp3 创建 temp4
Console.WriteLine(Path.GetTempFileName());
//获取一个随机的文件名(也可以用作文件夹名)
Console.WriteLine(Path.GetRandomFileName());
这个静态类的字段与方法,单独使用显得有些鸡肋,主要作用就是与后面的类相结合使用