FileInfo & DirectoryInfo

2022-03-29 09:37:33 浏览数 (3)

这节讲两个实例类,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。

本节到此结束...

0 人点赞