这节讲两个实例类,FileInfo和DirectoryInfo两个类,用于操作某个具体的文件或者目录。

FileInfo:

    FileInfo不同于File,它是一个实例类,有一个string类型的构造方法,用于接收文件路径或者url形式的路径:

FileInfo fi=new FileInfo(@"./demo.txt");

实例化后的对象,就有关于这个文件的信息,比如文件名,扩展名等等。上述参数的前缀@符号,用于标识这个字符串为不转义字符串,也就是说反斜线就是一个反斜线,没有转义功能,这样标识比较方便。本节还是使用上节的demo.txt文件和Test文件夹。

下面先展示一下相关代码:

if (fi.Exists)
{
Console.WriteLine(fi.Name);//文件名
Console.WriteLine(fi.Attributes);//文件访问属性
fi.Attributes = FileAttributes.Archive;//设置文件访问类型
Console.WriteLine(fi.CreationTime);//创建时间
Console.WriteLine(fi.CreationTimeUtc);//创建时间(UTC时间)
Console.WriteLine(fi.Extension);//扩展名
Console.WriteLine(fi.FullName);//完整名
Console.WriteLine(fi.LastAccessTime);//最后一次访问时间
Console.WriteLine(fi.LastAccessTimeUtc);
Console.WriteLine(fi.LastWriteTime);//最后一次修改时间
Console.WriteLine(fi.LastWriteTimeUtc);
DirectoryInfo directoryInfo = fi.Directory;//返回包含此文件的目录信息对象
Console.WriteLine(fi.DirectoryName);//目录名
Console.WriteLine(fi.IsReadOnly);//是否是只读
Console.WriteLine(fi.Length);//文件大小
}

输出结果为:

具体介绍一下Attributes属性,这个属性是个读写属性,可以读取文件访问类型,也可以通过FileAttributes这个枚举类,修改访问类型,比如常见的ReadOnly,Hidden。

Directory属性,该文件所在的目录的信息对象,可以通过此对象查看当前目录信息。

FullName属性,返回完整的路径文件名。

Length属性,返回文件大小,也就是字节数,是个long类型的。

 DirectoryInfo:

    它的用法和属性,跟FileInfo差不多,但它有两个专有方法:

DirectoryInfo di=new DirectoryInfo("./");
DirectoryInfo parent = di.Parent;
DirectoryInfo root = di.Root; Console.WriteLine(di.FullName);
Console.WriteLine(parent.FullName);
Console.WriteLine(root.FullName);

 Parent和Root属性,以上代码输出结果为:

Parent属性,返回该目录的目录的信息对象,

Root返回目录所在盘符的目录信息对象。

那么,File,Directory和FileInfo,DirectoryInfo作用都是差不多的,具体在什么时候用呢,静态类的话,因为不需要实例化,所以在单次使用的情景下,可以使用File,Directory,当需要多次使用的话,就可以使用FileInfo,DirectoryInfo。

这是我的公众号二维码,获取最新文章,请关注此号

最新文章

  1. SSH项目与SSM项目的进入首页的方法
  2. ssh连接慢的问题的解决?
  3. 转:Teach Yourself Programming in Ten Years——用十年教会自己编程
  4. Spark的应用程序
  5. WebService cxf 接口中获得拦截器参数
  6. NUnit - 使用感受
  7. django 使用jquery ajax post数据问题
  8. OC——NSString和NSMutableString
  9. c++ 覆盖、重载、隐藏
  10. 圣魔大战3(Castle Fantisia)艾伦希亚战记完美攻略
  11. nested exception is java.sql.SQLException: IO 错误
  12. 表单提交前,判断webuploader是否上传
  13. Android主线程的消息系统(Handler\Looper)
  14. 函数和常用模块【day04】:作用域、局部和全局变量(四)
  15. JSP内置对象——page对象
  16. 用DELPHI 开发压缩、解压、自解压、加密
  17. Java 集合细节(二):asList 的缺陷
  18. linux 下 java 链接oracle数据库
  19. malloc、free、new、delete
  20. C#程序集系列06,程序集清单,EXE和DLL的区别

热门文章

  1. Codeforces Round #545 B. Circus
  2. Python中面向对象的概念
  3. 认清 React 的useState逻辑
  4. java位运算求一个整数的绝对值
  5. Java例题_48 四位数据加密
  6. Qt信号槽源码剖析(二)
  7. Dynamics CRM Report安装出错三
  8. Windows Service 2016 Datacenter\Stand\Embedded激活方法
  9. MySQL提升笔记(2):存储引擎盘点
  10. 2.EL表达式&JSTL标签库常用方法