16.2 Directory(Info)和File(Info)类型
System.IO提供了4个类型来实现对单个文件和计算机目录结构的操作。前两个类型Directory和File通过各种静态成员实现建立、删除、复制和移动操作。与之紧密关联的FileInfo和DirectoryInfo类型则通过实例级方法来实现类似的功能(因此必须要实例化)。从图16-1中,我们注意到Directory和File类型直接扩展了System.Object,而DirectoryInfo和FileInfo则从FileSystemInfo抽象类派生。

图16-1 File-和Directory-相关类型
一般来说,因为Directory和File类成员往往返回的是字符串数值而不是强类型对象,所以相比之下,FileInfo和DirectoryInfo类更适合来实现递归操作(比如枚举某根目录下面的所有子目录)。
FileSystemInfo抽象基类
DirectoryInfo和FileInfo类型实现了许多FileSystemInfo抽象基类的行为。大部分FileSystemInfo类成员的作用是用来获取指定文件或目录的一般特性(比如创建时间、各种特性等)。表16-2列举了一些重要属性。
表16-2 FileSystemInfo属性
|
属 性 |
作 用 |
|
Attributes |
获取或设置与当前文件关联的特性,由FileAttributes枚举表示 |
|
CreationTime |
获取或设置当前文件或目录的创建时间 |
|
Exists |
用来判断指定文件或目录是否存在的值 |
|
Extension |
获取文件的扩展名 |
|
FullName |
获取目录或文件的完整路径 |
|
LastAccessTime |
获取或设置上次访问当前文件或目录的时间 |
|
LastWriteTime |
获取或设置上次写入当前文件或目录的时间 |
|
Name |
对于文件,获取该文件的名称。对于目录,如果存在层次结构,则获取层次结构中最后一个目录的名称;否则,获取该目录的名称 |
FileSystemInfo类型还定义了Delete()方法,该操作由派生类型从硬盘中删除指定文件或目录来实现。同样,在获取文件特性前使用Refresh()方法能确保当前文件(或目录)的统计信息是最新的。






