天天看点

C# - Path静态类,对目录或文件路径进行"操作"(*) 096

作者:源丁编程

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]);
}           
C# - Path静态类,对目录或文件路径进行"操作"(*) 096

用于目录,文件,卷的分隔符

成员方法

成员方法 说明
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());           

这个静态类的字段与方法,单独使用显得有些鸡肋,主要作用就是与后面的类相结合使用

继续阅读