.NET中的IO操作基础介绍
关于IO简介
.NET中的IO操作,经常需要调用一下几个类。
1.FileStream类
文件流类,负责大文件的拷贝,读写。
2.Path类
Path类中方法,基本都是对字符串(文件名)的操作,与实际文件没多大关系。
3.File类
File类可以进行一些对小文件拷贝、剪切操作,还能读一些文档文件。
4.Dirctory
目录操作,创建文件、删除目录,获取目录下文件名等等。
Path类
1.ChangeExtension(path,".jpg")
改变文件后缀名!
2.Combine(s1,s2)
将两个路径连起来
3.获取文件名的几个方法
1)Path.GetFileName(s1); //获取路径中的文件名
2)Path.GetFileNameWithoutExtension(s1); //获取文件名,不包括后缀名!
3)Path.GetDirectoryName(s1)//获取路径中的目录不包括文件名。
4)Path.GetExtension(s1); //只获取扩展名
4.GetFullPath("")
获取完整路径,根据相对路径获得绝对路径。
5.临时目录
1)GetTempPath() //获取当前用户的临时目录
2)GetTempFileName() //获取一个随机的文件名,并在临时目录下创建这个文件。
3)GetRandomFileName() //仅获取一个随机文件名。
Directory类
1.创建目录
Directory.CreateDirectory(@"目录");
2.判断某个目录是否存在某文件
string path =@"路径";
if(Directory.Exists(path))
{
}
3.删除目录
1)Directory.Delete(path); //删除空目录 ,目录下没有文件了。
2)Directory.Delete(path,true); //不管空不空,都删!
3)如果没有目录就会报异常,最好用if(Directory.Exists(path))判断一下。
4.移动文件目录
重命名目录也用这个来做。
Directory.Move(@"c:\a",@"c:\abc");
5.DirectoryInfo
可以把文件夹当作对象来使用
DirectoryInfo dirInfo = new DirectoryInfo(@"path");
6.获取当前目录下的所有直接子目录 和 直接子文件
//获取目录下的直接子目录
String[] dirs =Direcotory.GetDirectories(@"目录");
//获取目录下的直接子文件
String[] files =Directory.GetFiles(@"目录");
7.获取当前目录下的目录和文件 另一种方式
//获取目录下的直接子目录
//String[] dirs =Direcotory.GetDirectories(@"目录");
//获取目录下的直接子文件
//String[] files =Directory.GetFiles(@"目录");
//—————————以上是6中的做法,他有一定性能上的问题。什么问题呢?—————————————
使用String[] dirs =Direcotory.GetDirectories(@"目录");是必须要等获取了整个string之后,才能遍历这个集合。
如果希望,读到一条处理一条。
建议使用Directory.EnumerateFile()
1)EnumerateFile返回的是一个实现了IEnumerable接口的集合。实际上使用了迭代器模式。
2)SearchOption.ALLDirctories参数,会让.EnumerateFile()遍历所有子目录下的文件。
File类
1.拷贝
File.Copy("Source"," Target",true);
2.判断是否存在
File.Exists(@"Source") ;
3.剪切
File.Move("Source","Targe");
4.创建
File.Create("path");
5.删除
File.Delete("path"); //删除,若没有,不报错!
6.读操作
1)File.ReadAllLines("path",Encoding.Default); //返回一个string[]
2)File.ReadAllTest("path",Encoding.Default); //string
3)File.ReadAllBytes("path");
7.写操作
1)File.WriteAllLines("path",new string[4],Encoding.Default);//按行写入一个文件中。
2)File.WriteAllText("path","string");
3)File.WriteAllBytes("path",new byte[4]);
4)File.AppendAllText(); //将string追加到文件中。
8.返回FileStream的快捷方式
1)File.Open(string,FileMode); //返回一个FileStream
2)File.OpenRead(string,FileMode); //返回一个只读的 FileStream
3)File.OpenWrite(string,FileMode); //返回一个只写的 FileStream