C#中的DirectoryInfo类是一个非常强大的工具,可以用来处理文件系统中的目录或者文件夹,它可以帮助用户获取目录的信息、创建、删除或移动目录,以及查找目录中所有的文件和文件夹等等。本文将围绕着DirectoryInfo类展开,带您深度了解它的功能和使用方法。
一、获取目录信息
在C#中,DirectoryInfo类提供了非常简单的方法来访问文件系统中的目录信息。通过实例化一个DirectoryInfo类的对象,你可以得到一个目录的访问实体,然后可以使用该实体获取目录中的信息,例如目录的名称、路径、大小等等。
1. 实例化对象
使用DirectoryInfo类获取目录信息的第一步,就是需要实例化一个DirectoryInfo类的对象,然后该对象可以让你获取目录的信息。以下是实例化一个DirectoryInfo对象的例子:
DirectoryInfo myDirectory = new DirectoryInfo("c:\\");
在这个例子中,DirectoryInfo类的构造函数使用了一个字符串类型的参数,这个参数表示该对象所表示的目录的路径。通过这种方式可以使得DirectoryInfo对象访问到指定的目录中。
2. 获取目录信息
一旦你实例化了一个DirectoryInfo对象,你可以使用其中的各种方法来获取目录的信息了。DirectoryInfo类中提供了许多有用的方法来获取目录的信息。以下列出一些常用的方法:
方法 描述
Exists() 判断目录是否存在
Name 获取目录名称
FullName 获取目录的完整路径
Attributes 获取或设置目录的属性
CreationTime 获取或设置目录创建时间
LastAccessTime 获取或设置目录最后访问时间
LastWriteTime 获取或设置目录最后写入时间
Parent 获取目录的父目录路径
以下是一个实例代码,展示了DirectoryInfo类的一些常用方法:
DirectoryInfo myDirectory = new DirectoryInfo("c:\\");
// 获取目录的名称
MessageBox.Show("目录名称:" + myDirectory.Name);
// 获取目录完整路径
MessageBox.Show("目录完整路径:" + myDirectory.FullName);
// 获取目录创建时间
MessageBox.Show("目录创建时间:" + myDirectory.CreationTime);
// 获取目录的父目录路径
MessageBox.Show("父目录路径:" + myDirectory.Parent);
二、创建、删除和移动目录
除了获取目录信息外,DirectoryInfo类还提供了一些有用的方法帮助用户创建、删除或者移动目录。下面就来一一介绍这些方法。
1. 创建目录
如果你想要在指定的路径中创建新的目录,可以使用以下代码:
DirectoryInfo myDirectory = new DirectoryInfo(@"C:\MyNewDirectory");
myDirectory.Create();
这个例子中示范了如何创建一个名为“MyNewDirectory”的文件夹。Create()方法用于创建一个新的目录。
2. 删除目录
如果你想要删除一个已存在的目录,可以使用DirectoryInfo类的Delete()方法,例如:
DirectoryInfo myDirectoryToDelete = new DirectoryInfo(@"C:\MyNewDirectory");
if (myDirectoryToDelete.Exists)
{
myDirectoryToDelete.Delete(true);
}
这些代码可以将“MyNewDirectory”目录删除。这里在Delete()方法中传递了一个布尔值的参数,当这个参数值为true时,意味着“尽可能删除目录下所有的子目录和文件”。如果值为false,那么只会删除当前目录。
3. 移动目录
如果你希望将一个目录从一个位置移动到别处,可以使用DirectoryInfo类的MoveTo()方法,例如:
DirectoryInfo myDirectoryToMove = new DirectoryInfo(@"C:\MyNewDirectory");
myDirectoryToMove.MoveTo(@"D:\MyNewDirectory");
这会将“MyNewDirectory”目录从C:驱动器移动到D:驱动器。
三、递归遍历目录
DirectoryInfo类提供了一种非常方便的方法,可以很容易地遍历整个目录(甚至是它的子目录)以查找某些指定的的文件或目录。这个方法是使用Recursive属性的GetDirectories()方法,下面我们来看一下如何使用这个方法,并返回一个字符串类型的数组。
string[] directories = Directory.GetDirectories("C:\\", "*", SearchOption.AllDirectories);
这个例子将返回在C:驱动器下的所有目录,包括它的子目录。
四、查找所有文件
如果你需要查找指定目录下的所有文件,使用DirectoryInfo类非常容易。下面这个例子展示了如何列出指定目录下所有的文件:
DirectoryInfo myDirectory = new DirectoryInfo("C:\\MyDirectory");
FileInfo[] fileList = myDirectory.GetFiles();
foreach (FileInfo file in fileList)
{
MessageBox.Show(file.Name);
}
这段代码将在“MyDirectory”目录中列出所有文件的名称。
总结
DirectoryInfo类提供了一个非常强大的工具,使得在C#中访问文件系统中目录的信息、创建、删除或移动目录,以及查找目录中所有的文件和文件夹等等非常方便。如果你正在开发一个需要涉及到文件系统的C#程序,DirectoryInfo类是一个不可或缺的工具。