FileInfo和DirectoryInfo类(操作文件和文件夹)
通过FileInfo和DirectoryInfo类来读取文件和文件夹属性 查看文件属性,创建文件,移动文件,重命名文件 判断路径是否存在,创建目录
1、下面的类用于浏览文件系统和执行操作,比如移动,复制和删除文件。
System.MarshalByRefObject 这个是.NET类中用于远程操作的基对象类,它允许在应用程序域之间编组数据。
FileSystemInfo 这是表示任何文件系统对象的基类
FileInfo和File 这些类表示文件系统上的文件
DirectoryInfo和Directory 表示文件系统上的文件夹
Path 包含用于处理路径名的一些静态方法
DriveInfo 它的属性和方法提供了指定驱动器的信息
2、表示文件和文件夹的.NET类
我们有两个用于表示文件夹的类和两个用于表示文件的类 Directory(文件夹)和 File(文件)类只包含静态方法,不能被实例化。如果只对文件夹或文件执行一个操作,使用这些类就很有效,省去了去实例化.NET类的系统开销。
DirectoryInfo类和FileInfo类实现与Directory和File相同的公共方法,他们拥有一些公共属性和构造函数,这些类的成员都不是静态的。需要实例化这些类,之后把每个实例与特定的文件夹或者文件关联起来。如果使用同一个对象执行多个操作,使用这些类比较合适,这是因为在构造的时候他们将读取合适文件系统对象的身份验证和其他信息,无论每个对象调用了多少方法,都不需要再次读取这些信息。
FileInfo和DirectoryInfo类
对于FileInfo和DirectoryInfo类中的很多方法也可以使用File和Directory中的很多方法实现。
//1,完成一个文件的拷贝 FileInfo myFile = new FileInfo(@"c:\pxx\xx\xxx\xxx.txt"); myFile.CopyTo(@"d:\xx\xx.txt");//拷贝文件 //对应的File处理方式 File.Copy(@"c:\xxx\xx\xx\xx.txt", @"d:\xx\xx\xx.txt"); //2,判断一个文件夹是否存在 DirectoryInfo myFolder = new DirectoryInfo(@"c:\program files"); myFolder.Exists
对于FileInfo,或者DirectoryInfo进行构造的时候,如果传递了一个不存在的文件或者文件夹路径,这个时候不会出现异常,只有当你使用这个文件或者文件夹的时候才会出现问题。 FileInfo和DirectoryInfo的对象都可以通过Exists属性判断这个文件或者文件夹是否存在。
FileInfo和DirectoryInfo的属性列表
属性 | 作用 |
---|---|
CreationTime | 创建文件或文件夹的时间 |
DirectoryName(用于FileInfo) | 包含文件夹的完整路径 |
Parent(用于DirectoryInfo) | 指定子目录的父目录 |
Exists | 文件或文件夹是否存在 |
Extension | 文件的扩展名,对于文件夹,它返回空白 |
FullName | 文件或文件夹的完整路径名 |
LastAccessTime | 最后一次访问文件或文件夹的时间 |
LastWriteTime | 最后一个修改文件或文件夹的时间 |
Name | 文件或文件夹的名称 |
Root(仅用于DirectoryInfo | 路径的根部分 |
Length(仅用于FileInfo) | 返回文件的大小(以字节为单位) |
FiInfo和DirectoryInfo的方法列表
方法 | 作用 |
---|---|
Create() | 创建给定名称的文件夹或者空文件,对于FileInfo,该方法会返回一个流对象,以便于写入文件。 |
Delete() | 删除文件或文件夹。对于文件夹有一个可以递归的Delete选项 |
MoveTo() | 移动或重命名文件或文件夹 |
CopyTo() | (只用于FileInfo)复制文件,文件夹没有复制方法,如果想要复制完整的目录树,需要单独复制每个文件和文件夹 |
GetDirectories() | (只适用于DirectoryInfo)返回DirectoryInfo对象数组,该数组表示文件夹中包含的所有文件夹 |
GetFiles() | (只适用于DirectoryInfo)返回FileInfo对象数组,该数组表示文件夹中所有的文件 |
GetFileSystemInfos() | (只适用于DirectoryInfo)返回FileInfo和DirectoryInfo对象,它把文件夹中包含的所有对象表示为一个FileSystemInfo引用数组 |