目录
用于输入和输出的类
File类
静态方法 |
说明 |
Copy() |
将文件从源位置复制到目标位置 |
Create() |
在指定的路径上创建文件 |
Delete() |
删除文件 |
Open() |
返回指定路径上的FileStream对象 |
Move() |
将指定的文件移到新位置,可在新位置为文件指定不同名称 |
Directory类
静态方法 |
说明 |
CreateDirectory() |
创建具有指定路劲的目录 |
Delete() |
删除指定的目录及其中的所有文件 |
GetDirectories() |
返回表示指定目录下的目录名的string对象数组 |
EnumerateDirectories() |
与GetDirectories()类似,但返回目录名的IEnumerable<string>集合 |
GetFiles() |
返回在指定目录中的文件名的string对象数组 |
EnumerateFiles() |
与GetFiles()类似,但返回文件名的IEnumerable<string>集合 |
GetFileSystemEntries() |
返回指定目录中的文件和目录名的string对象数组 |
EnumerateFileSystemEntries() |
与GetFileSystemEntries()类似,但返回文件和目录名的IEnumerable<string>集合 |
Move() |
将指定目录移到新位置,可在新位置为文件夹指定一个新名称 |
Note:存在大量文件或目录时,EnumerateXxx()方法其性能比对应的GetXxx()方法好
FileInfo类
FileInfo类不是静态的,没有静态方法,只有在实例化后才可使用。FileInfo对象表示磁盘或网络位置上的文件,提供文件路径,就可以创建一个FileInfo对象。
FileInfo aFile = new FileInfo(@"C:\Log.txt");
Note:@表示这个字符串应该按字面意思解释,\就是\。如果不用@,则\需要写成\\
//下面两个调用相同--检查Data.txt文件是否存在
FileInfo aFile = new FileInfo("Data.txt");
if(aFile.Exists)
Console.WriteLine("File Exists");
if(File.Exists("Data.txt"))
Console.WriteLine("File Exists");
Note
- 仅进行单一方法调用,使用静态File类上的方法会快一点,因为.NET Framework不必实例化新对象,再调用方法。
- 如果应用程序在文件上执行几种操作,实例化FileInfo对象并使用其方法会更好。因为对象已在文件系统上引用正确的文件,而静态类每次都需要寻找文件。
FileSystem属性 |
|
属性 |
说明 |
Attributes |
使用FileAttributes枚举,获取或者设置当前文件或目录的特性 |
CreationTime CreationTimeUtc |
获取当前文件的创建日期和时间,可使用UTC和非UTC版本 |
Extension |
提取文件的扩展名,只读属性 |
Exists |
确定文件是否存在,是只读的抽象属性,在FileInfo和DirectoryInfo中进行了重写 |
FullName |
检索文件的完整路径,只读属性 |
LastAccessTime LastAccessTimeUtc |
获取或者设置上次访问当前文件的日期和时间,可使用UTC和非UTC版本 |
LastWriteTime LastWriteTimeUtc |
获取或设置上次写入文件的日期和时间,可使用UTC和非UTC版本 |
Name |
检索文件的完整路径,是一个只读抽象属性,在FileInfo和DirectoryInfo中进行重写 |
FileInfo专用属性 |
|
属性 |
说明 |
Directory |
检索一个DirectoryInfo对象,表示包含当前文件的目录,只读属性 |
DirectoryName |
返回文件目录的路径,只读属性 |
IsReadOnly |
文件只读特性的快捷方式,也可通过Attributes访问该属性 |
Length |
获取文件的大小(以字节为单位),返回long值,只读属性 |
DirectoryInfo类
DirectoryInfo类是一个实例化对象,表示计算机上的单一目录,和FileInfo类类似。在Directory和DirectoryInfo类一样存在许多类似方法调用,选择原则和File,FileInfo类似:
- 执行单一调用,用Directory类