System.IO命名空间中提供的文件操作类有File和FileInfo,这两个类的功能基本相同,只是File是静态类,其中所有方法都是静态的,可以通过类名直接调用,不需要实例化。而FileInfo是普通类,只有实例化对象后才可以调用其中的方法。

File类是一个静态类,它对应整个文件系统进行操作,方法均为静态文法;如果只是对文件进行少量的操作,如判断文件是否存在之类或者对很多的文件进行操作,建议使用File类,可以避免频繁创建和释放对象的系统开销。

FileInfo类是一个实例类,它对应某一个文件进行操作,方法大部分为实例方法,它的操作有可能是调用的File中的对应静态方法。如果是对一个文件进行大量的操作,建议使用FileInfo类。

那么为什么有时还使用FileInfo呢?因为每次通过File类调用某个方法时,都要占用一定的cpu处理时间来进行安全检查,即使使用不同的File类的方法重复访问同一个文件时也是如此。而FileInfo类只在创建FileInfo对象时执行一次安全检查。

为方便操作,有很多时候不需要生成一个FileInfo对象那么麻烦。
比如:复制一个文件到另外一个地方:
File.Copy(filePath,newFilePath)就可以。
如果用FileInfo
可能需要:
FileInof fi = new FileInfo();
fi.CopyTo(newFilePath); 我们可以使用以下规则确定: 1、如果应用程序在文件上执行几种操作,则使用FileInfo类更好一些,因为创建对象时,已经引用了正确的文件,而静态类每次都要寻找文件,会花费更多时间。 2、如果进行单一的方法调用,则建议用File类,不必实例化对象。

最新文章

  1. Redis系列(三)-Redis发布订阅及客户端编程
  2. web端功能测试总结(二)
  3. C和指针 第六章 数组名与指针
  4. [UOJ#34]多项式乘法
  5. Struts2笔记——ONGL表达式语言
  6. multiple backgrounds 多重背景
  7. Spring核心框架 - AOP的起源及介绍
  8. (转)高性能I/O模型
  9. PropertyPlaceholderConfigurer的用法(使用spring提供的类读取数据库配置信息.properties)
  10. svn unable to connect to a repository at url 执行上下文错误 不能访问SVN服务器问题
  11. POJ2155:Matrix(二维树状数组,经典)
  12. js原生设计模式——8单例模式之简约版属性样式方法库
  13. RxJava系列6(从微观角度解读RxJava源码)
  14. Ubuntu16 FTP的安装,基本配置与权限控制
  15. 直达核心的快速学习PHP入门技巧
  16. scrapy 琐碎的东西
  17. ionic获取ios唯一设备id的解决方案
  18. Tomcat无法访问中文路径的解决办法
  19. PythonWeb 开发记录(一)
  20. Redis初探(windows/linux安装)

热门文章

  1. GoCN每日新闻(2019-10-20)
  2. 深度讨论i++问题
  3. 微信小程序 报错:Setting data field "xxx" to undefined is invalid
  4. jQuery跳出each循环:JS报错:illegal break statement
  5. Nim游戏博弈(收集完全版)
  6. 初探Android逆向:通过游戏APP破解引发的安全思考
  7. Please enable using preview .net core sdks
  8. [译]Pandas列数据展示不全解决方法?
  9. glob 遍历文件夹里面文件
  10. 本地dev环境,运行时用node模块自动读取并整合文件