DirectoryInfo类是System.IO命名空间的一部分。它用于创建,删除和移动目录。它提供了执行与目录和子目录相关的操作的方法。这是一个密封的类,所以不能继承它。
DirectoryInfo类提供了下面列出的构造函数,方法和属性。
C# DirectoryInfo语法
[SerializableAttribute]  
[ComVisibleAttribute(true)]  
public sealed class DirectoryInfo : FileSystemInfo
C# DirectoryInfo构造函数
下表列出了DirectoryInfo类的构造函数。
| 构造函数 | 描述 | 
|---|---|
| DirectoryInfo(String) | 它用于在指定的路径上初始化 DirectoryInfo类的新实例。 | 
C# DirectoryInfo属性
下表中列出了DirectoryInfo类的属性。
| 属性 | 描述 | 
|---|---|
| Attributes | 它用于获取或设置当前文件或目录的属性。 | 
| CreationTime | 它用于获取或设置当前文件或目录的创建时间。 | 
| CreationTimeUtc | 它用于在协调的世界时间(UTC)中获取或设置创建时间。 | 
| Exists | 它用于获取一个值,指示目录是否存在。 | 
| Extension | 它用于获取表示文件扩展部分的字符串。 | 
| FullName | 它用于获取目录的完整路径。 | 
| LastAccessTime | 它用于获取或设置上次访问当前文件或目录的时间。 | 
| LastAccessTimeUtc | 用于在当前文件或目录被上次访问的协调世界时间(UTC)中获取或设置时间。 | 
| LastWriteTime | 它用于获取或设置当前文件或目录最后写入的时间。 | 
| LastWriteTimeUtc | 当最后一次写入当前文件或目录时,它用于在协调世界时(UTC)中获取或设置时间。 | 
| Name | 它用于获取此 DirectoryInfo实例的名称。 | 
| Parent | 它用于获取指定子目录的父目录。 | 
| Root | 它用于获取目录的根部分。 | 
C# DirectoryInfo方法
下表列出了DirectoryInfo类中定义的方法。
| 方法 | 描述 | 
|---|---|
| Create() | 它用于创建一个目录。 | 
| Create(DirectorySecurity) | 它用于使用 DirectorySecurity对象创建目录。 | 
| CreateObjRef(Type) | 它用于创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。 | 
| CreateSubdirectory(String) | 它用于在指定的路径上创建一个子目录或子目录。 | 
| CreateSubdirectory(String,DirectorySecurity) | 它用于在具有指定安全性的指定路径上创建子目录或子目录。 | 
| Delete() | 如果 DirectoryInfo为空,则用于删除DirectoryInfo。 | 
| Delete(Boolean) | 它用于删除 DirectoryInfo的实例,指定是否删除子目录和文件。 | 
| EnumerateDirectories() | 它返回当前目录中可用的目录信息集合。 | 
| EnumerateFiles() | 它在当前目录中返回无数的文件信息集合。 | 
| GetAccessControl() | 它用于获取一个 DirectorySecurity对象,该对象封装了目录的访问控制列表(ACL)条目。 | 
| GetDirectories() | 它返回当前目录的子目录。 | 
| GetFiles() | 它从当前目录返回文件列表。 | 
| GetType() | 它用于获取当前实例的类型。 | 
| MoveTo(String) | 它用于将 DirectoryInfo实例及其内容移动到新路径。 | 
| Refresh() | 它用于刷新对象的状态。 | 
| SetAccessControl(DirectorySecurity) | 它用于设置 DirectorySecurity对象描述的访问控制列表(ACL)条目。 | 
| ToString() | 它返回用户传递的原始路径。 | 
C# DirectoryInfo示例
在下面的例子中,通过指定目录路径来创建一个名称为:zaixian_dir的目录。参考以下示例代码的实现 -
using System;
using System.IO;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            // Provide directory name with complete location.  
            DirectoryInfo directory = new DirectoryInfo(@"F:\worksp\csharp\zaixian_dir");
            try
            {
                // Check, directory exist or not.  
                if (directory.Exists)
                {
                    Console.WriteLine("Directory already exist.");
                    return;
                }
                // Creating a new directory.  
                directory.Create();
                Console.WriteLine("The directory is created successfully.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Directory not created: {0}", e.ToString());
            }
        }
    }
}
执行上面示例代码,得到以下结果 -
The directory is created successfully.
打开目录:F:\worksp\csharp 应该能看到有一个名称为:zaixian_dir的目录。
DirectoryInfo类还提供删除创建的目录的删除方法。
C# DirectoryInfo示例:删除目录
在以下程序中,我们将删除在上面示例程序中创建的zaixian_dir目录。
using System;
using System.IO;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            // Providing directory name with complete location.  
            DirectoryInfo directory = new DirectoryInfo(@"F:\worksp\csharp\zaixian_dir");
            try
            {
                // Deleting directory  
                directory.Delete();
                Console.WriteLine("The directory is deleted successfully.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Something went wrong: {0}", e.ToString());
            }
        }
    }
}
执行上面示例代码,得到以下结果 -
The directory is deleted successfully.
打开目录:F:\worksp\csharp 应该能看到zaixian_dir目录已经被删除了。
如果指定位置不存在目录,它将抛出一个System.IO.DirectoryNotFoundException异常。您可以自己修改上面代码测试一下。
						上一篇:
								C# FileInfo类
												下一篇:
								C#序列化
												
						
						
					
					
					