Path类 对路径字符串进行操作(操作的是一个表示路径的字符串)。
方法:获得后缀 能合并路径 获取文件名
Directory和DirectoryInfo类 对目录的操作
方法:可以判断目录是否存在 创建目录 删除目录 获取目录下所有的子目录 获取目录下的所有子文件
File和FileInfo类 对文件进行操作
方法:读文件 写文件 追加文件 判断文件是否存在 创建文件 删除文件
命名空间都是System.IO;
Path类是一个静态类,静态类中不能有实例方法,静态类所有的成员都必须是实例的,用path里面的方法的时候可以直接用“.”点出来,因为Path里面的属性方法都是静态的
string ChangeExtension(string path,string extension)(*):该后缀名,不管文件夹是否存在,改的的是字符串的
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);//获得文件的全路径(相对路径的全路径)
string GetTempFileName();//得到一个唯一的临时文件名(*)
string GetTempPath();//得到临时文件夹的路径
View Code
1 static void Main(string[] args) 2 { 3 string path = "c:\\abc\\bcd\\123\\xxx.rmvb"; 4 ////更改后缀名 5 //path = Path.ChangeExtension(path, "jpg"); 6 //Console.WriteLine(path); 7 8 //合并路径 9 //Console.WriteLine(Path.Combine("c:\\abc", "xxx.avi")); 10 11 //获取文件的目录 12 //Console.WriteLine(Path.GetDirectoryName(path)); 13 14 //Console.WriteLine(Path.GetExtension(path));//获得后缀名(带点(".")的) 15 //Console.WriteLine(Path.GetFileName(path));//获得文件名 16 //Console.WriteLine(Path.GetFileNameWithoutExtension(path));//获得没有后缀名的文件名 17 18 //Console.WriteLine(Path.GetFullPath("09-Path.exe"));//获得文件的全路径(相对路径的全路径) 19 20 Console.WriteLine(Path.GetTempFileName());//得到一个唯一的临时文件名(*) 21 Console.WriteLine(Path.GetTempPath());//得到临时文件夹的路径 22 Console.ReadLine(); 23 }
Directory和DirectoryInfo,也是静态类
void Delete(string path,bool recursive) 删除目录,recursive表示是否递归删除,如果recursive为false则只能删除空目录
bool Exists(string path) 得到一个目录下的子目录
string[] GetDirectories(string path)(*) 得到一个目录下的子目录
string[] GetDirectories(string path,string searchPattern,SerachOption SearchOption) 通配符查找目录下的子目录
static string[] GetFiles(string path)(*) 得到一个目录下的文件
string[] GetFiles(string path,string searchPattern,SerachOption SearchOption) 通配符查找目录吓得文件
DirectorvInfo GetParent(string path) 得到目录的父目录
CreateDirectory():创建文件夹,创建已经存在的文件不会报错,因为给覆盖了,但是删除不存在的文件会报错,所以删除之前需要先判断一下来防止错误
Directory和DirectoryInfo的区别:Directory是静态类,static修饰;DirectoryInfo是实例类,sealed修饰,不能被继承,DirectoryInfo类可以同时获得文件夹名称和全路径,Directory没有办法一起返回文件夹的名字和路径
View Code
1 static void Main(string[] args) 2 { 3 //实例类 4 //DirectoryInfo di = new DirectoryInfo(""); 5 //di.Name; //文件夹名称,Directory没有办法一起返回文件夹的名字和路径 6 //di.FullName;//文件夹全路径 7 8 //静态类 9 //Directory.CreateDirectory("c:\\abc\\1\\2\\3\\4\\5\\6\\7"); 10 //创建已经存在的文件不会报错,因为给覆盖了,但是删除不存在的文件会报错,所以删除之前需要先判断一下来防止错误 11 if (Directory.Exists("c:\\abc")) 12 { 13 Directory.Delete("c:\\abc",true);//强制删除,如果不加true,在该文件夹下面有子文件的时候无法删除的是 14 } 15 //获取当前文件夹下面的所有子文件夹,返回的是文件夹的路径(所有) 16 string[] paths = Directory.GetDirectories("c:\\abc", "*", SearchOption.AllDirectories); 17 //foreach (string path in paths) 18 //{ 19 // Console.WriteLine(path); 20 //} 21 //获取所有的文件(ini文件) 22 //string[] files = Directory.GetFiles("c:\\windows","*.ini",SearchOption.AllDirectories); 23 //foreach (string file in files) 24 //{ 25 // Console.WriteLine(file); 26 //} 27 28 //直接输出该文件夹的父文件夹 29 Console.WriteLine(Directory.GetParent("c:\\abc\\1\\2\\3\\4\\5\\6\\7")); 30 31 Console.ReadLine(); 32 }

浙公网安备 33010602011771号