欢迎来到天天文库
浏览记录
ID:34415513
大小:30.50 KB
页数:5页
时间:2019-03-05
《c#中filedirectoryfileinfodirectoryinfo区别与应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、两者的共同点:一:都用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件二:默认情况下,将向所有用户授予对新文件的完全读/写访问权限。两者的区别:File类是静态类,由于所有的File方法都是静态的,所以如果只想执行一个操作,那么使用File方法的效率比使用相应的FileInfo实例方法可能更高。所有的File方法都要求当前所操作的文件的路径。File类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用FileInfo的相应实例方法,因为并不总是需要安全检查。file,directory可以控制多个文件所以进行每次安全检查,而FileInfo,Directo
2、ryInfo只能控制一个文件信息只进行一次安全处理。静态方法每次对文件进行操作过程是:静态方法存在于栈头,它是由类调用,然后寻找需要操作的文件。寻找需要操作文件的过程是个IO过程,耗时比较长。但它不必要到堆区去遍历实例化新对象。普通方法是由当时的对象调用,需要创建对象,new一个,(静态方法不需要此过程)但如果操作次数多的话,普通方法就不需要再次去执行不必要而且耗时的IO操作,就能整体提速!所以执行方法的次数也就能决定了使用哪个类的最佳选择。参考《ASP.NET与VB.NET从入门到精通》(电子工业出版社A.RusellJones著高春蓉谷宇阎隽等译))下面的示例演示了File类的一些主要成员
3、。usingSystem;usingSystem.IO;classTest...{publicstaticvoidMain()...{stringpath=@"c:empMyTest.txt";if(!File.Exists(path))...{//Createafiletowriteto.using(StreamWritersw=File.CreateText(path))...{sw.WriteLine("Hello");sw.WriteLine("And");sw.WriteLine("Welcome");}}//Openthefiletoreadfrom.using(StreamRea
4、dersr=File.OpenText(path))...{strings="";while((s=sr.ReadLine())!=null)...{Console.WriteLine(s);}}try...{stringpath2=path+"temp";//Ensurethatthetargetdoesnotexist.File.Delete(path2);//Copythefile.File.Copy(path,path2);Console.WriteLine("{0}wascopiedto{1}.",path,path2);//Deletethenewlycreatedfile.Fil
5、e.Delete(path2);Console.WriteLine("{0}wassuccessfullydeleted.",path2);}catch(Exceptione)...{Console.WriteLine("Theprocessfailed:{0}",e.ToString());}}}File.Create方法(String)参数path:要创建的文件的路径及名称。返回值:一个FileStream,它提供对path中指定的文件的读/写访问。下面的示例在指定路径中创建一个文件,将一些信息写入该文件,再从文件中读取。usingSystem;usingSystem.IO;usingSy
6、stem.Text;classTest...{publicstaticvoidMain()...{stringpath=@"c:empMyTest.txt";try...{//Deletethefileifitexists.if(File.Exists(path))...{File.Delete(path);}//Createthefile.using(FileStreamfs=File.Create(path))...{Byte[]info=newUTF8Encoding(true).GetBytes("Thisissometextinthefile.");//Addsomeinformat
7、iontothefile.fs.Write(info,0,info.Length);}//Openthestreamandreaditback.using(StreamReadersr=File.OpenText(path))...{strings="";while((s=sr.ReadLine())!=null)...{Console.WriteLine(s);}}}catch(Exceptio
此文档下载收益归作者所有