这节讲两个实例类,FileInfo和DirectoryInfo两个类,用于操作某个具体的文件或者目录。
FileInfo:
FileInfo不同于File,它是一个实例类,有一个string类型的构造方法,用于接收文件路径或者url形式的路径:
代码语言:javascript复制FileInfo fi=new FileInfo(@"./demo.txt");
实例化后的对象,就有关于这个文件的信息,比如文件名,扩展名等等。上述参数的前缀@符号,用于标识这个字符串为不转义字符串,也就是说反斜线就是一个反斜线,没有转义功能,这样标识比较方便。本节还是使用上节的demo.txt文件和Test文件夹。
下面先展示一下相关代码:
代码语言:javascript复制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差不多,但它有两个专有方法:
代码语言:javascript复制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。
本节到此结束...