目录操作

C# 中允许您使用各种目录和文件相关的类来操作目录和文件,比如 DirectoryInfo 类和 FileInfo 类。

DirectoryInfo 类

DirectoryInfo 类派生自 FileSystemInfo 类,其中提供了各种用于创建、移动、浏览目录和子目录的方法。需要注意的是,该类不能被继承。

下表列出了 DirectoryInfo 类中一些常用的属性:

属性描述
Attributes获取当前文件或目录的属性
CreationTime获取当前文件或目录的创建时间
Exists获取一个表示目录是否存在的布尔值
Extension获取表示文件存在的字符串
FullName获取目录或文件的完整路径
LastAccessTime获取当前文件或目录最后被访问的时间
Name获取该 DirectoryInfo 实例的名称

下表列出了 DirectoryInfo 类中一些常用的方法:

方法描述
public void Create()创建一个目录
public DirectoryInfo CreateSubdirectory(string path)在指定的路径上创建子目录,指定的路径可以是相对于 DirectoryInfo 类的实例的路径
public override void Delete()如果为空的,则删除该 DirectoryInfo
public DirectoryInfo[] GetDirectories()返回当前目录的子目录
public FileInfo[] GetFiles()从当前目录返回文件列表

DirectoryInfo类官方文档。

FileInfo 类

FileInfo 类派生自 FileSystemInfo 类,其中提供了用于创建、复制、删除、移动、打开文件的属性和方法。与 DirectoryInfo 类相同,FileInfo 类也不能被继承。

下表列出了 FileInfo 类中一些常用的属性:

属性描述
Attributes获取当前文件的属性
CreationTime获取当前文件的创建时间
Directory获取文件所属目录的一个实例
Exists获取一个表示文件是否存在的布尔值
Extension获取表示文件存在的字符串
FullName获取文件的完整路径
LastAccessTime获取当前文件最后被访问的时间
LastWriteTime获取文件最后被写入的时间
Length获取当前文件的大小,以字节为单位
Name获取文件的名称

下表列出了 FileInfo 类中一些常用的方法:

方法描述
public StreamWriter AppendText()创建一个 StreamWriter,追加文本到由 FileInfo 的实例表示的文件中
public FileStream Create()创建一个文件
public override void Delete()永久删除一个文件
public void MoveTo(string destFileName)移动一个指定的文件到一个新的位置,提供选项来指定新的文件名
public FileStream Open(FileMode mode)以指定的模式打开一个文件
public FileStream Open(FileMode mode,FileAccess access)以指定的模式,使用 read、write 或 read/write 访问,来打开一个文件
public FileStream Open(FileMode mode,FileAccess access,FileShare share)以指定的模式,使用 read、write 或 read/write 访问,以及指定的分享选项,来打开一个文件
public FileStream OpenRead()创建一个只读的 FileStream
public FileStream OpenWrite()创建一个只写的 FileStream

FileInfo类官方文档。

使用 DirectoryInfo 类获取目录的信息。

using System; using System.IO; namespace xiaobai { class Demo { static void Main(string[] args) { // 创建一个 DirectoryInfo 对象 DirectoryInfo mydir = new DirectoryInfo(@"f:\code"); // 获取目录中的文件以及它们的名称和大小 FileInfo[] f = mydir.GetFiles(); foreach (FileInfo file in f) { Console.WriteLine("文件名称:{0} 大小:{1}", file.Name, file.Length); } Console.ReadKey(); } } }

运行结果如下:

文件名称:demo.cs 大小:592 文件名称:demo.exe 大小:4096 文件名称:demo.txt 大小:54 文件名称:mydata 大小:30 文件名称:test.txt 大小:50