无涯教程-C# - DirectoryInfo类

61 阅读3分钟

DirectoryInfo类是System.IO命名空间的一部分。用于创建、删除、移动目录。它提供了执行与目录和子目录相关的操作的方法。它是一个密封的类,所以无涯教程不能继承它。

DirectoryInfo类提供下面列出的构造函数、方法和属性。

C#DirectoryInfo语法

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class DirectoryInfo : FileSystemInfo

C#DirectoryInfo构造函数

下表包含DirectoryInfo类的构造函数。

Constructor Description
DirectoryInfo(String) 它用于初始化指定路径上的DirectoryInfo类的新实例。

C#DirectoryInfo属性

下表包含DirectoryInfo类的属性。

Property Description
Attributes 它用于获取或设置当前文件或目录的属性。
CreationTime 它用于获取或设置当前文件或目录的创建时间。
CreationTimeUtc 它用于获得或设置创建时间,协调世界(UTC)。
Exists 它用于获取指示目录是否存在的值。
Extension 它用于获取表示文件的扩展部分的字符串。
FullName 它用于获取目录的完整路径。
LastAccessTime 它用于获取或设置上次访问当前文件或目录的时间。
LastAccessTimeUtc 它用于获取或设置时间,在协调的通用时间(UTC)上次访问当前文件或目录。
LastWriteTime 它用于获取或设置当前文件或目录上次写入的时间。
LastWriteTimeUtc 它用于在协调世界时 (UTC) 中获取或设置当前文件或目录最后一次写入的时间。
Name 它用于获取此 DirectoryInfo 实例的名称。
Parent 用于获取指定子目录的父目录。
Root 它用于获取目录的根部分。

C#DirectoryInfo方法

下表包含DirectoryInfo类的方法。

Method Description
Create() 它用于创建目录。
Create(DirectorySecurity) 它用于使用 DirectorySecurity 对象创建目录。
CreateObjRef(Type) 它用于创建一个对象,该对象包含生成用于与远程对象通信的代理所需的所有相关信息。
CreateSubdirectory(String) 它用于在指定路径上创建一个或多个子目录。
CreateSubdirectory(String,DirectorySecurity) 它用于在指定路径上以指定的安全性创建一个或多个子目录。
Delete() 如果此 DirectoryInfo 为空,则用于删除它。
Delete(Boolean) 它用于删除此 DirectoryInfo 实例,指定是否删除子目录和文件。
EnumerateDirectories() 它返回当前目录中目录信息的可枚举集合。
EnumerateFiles() 它返回当前目录中文件信息的可枚举集合。
GetAccessControl() 它用于获取一个 DirectorySecurity 对象,该对象封装了目录的访问控制列表 (ACL) 条目。
GetDirectories() 它返回当前目录的子目录。
GetFiles() 它从当前目录返回一个文件列表。
GetType() 它用于获取当前实例的类型。
MoveTo(String) 它用于将 DirectoryInfo 实例及其内容移动到新路径。
Refresh() 它用于刷新对象的状态。
SetAccessControl(DirectorySecurity) 它用于设置由 DirectorySecurity 对象描述的访问控制列表 (ACL) 条目。
ToString() 它返回用户传递的原始路径。

C#DirectoryInfo示例

在下面的示例中,无涯教程通过指定目录路径创建javatpoint目录。

using System;
using System.IO;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            // 提供具有完整位置的目录名称。
            DirectoryInfo directory = new DirectoryInfo(@"F:\javatpoint");
            try
            {
                // 检查,目录是否存在。
                if (directory.Exists)
                {
                    Console.WriteLine("Directory already exist.");
                    return;
                }
                // 创建一个新目录。
                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.

在下面的屏幕截图中,无涯教程可以看到创建了一个目录。

CSharp Directory info 1

DirectoryInfo类还提供一个删除方法来删除创建的目录。在下面的程序中,无涯教程将删除在前一个程序中创建的目录。

C#DirectoryInfo示例: Deleting Directory

using System;
using System.IO;
namespace CSharpProgram
{
    class Program
    {
        static void Main(string[] args)
        {
            // 提供具有完整位置的目录名称。
            DirectoryInfo directory = new DirectoryInfo(@"F:\javatpoint");
            try
            {
                // 删除目录
                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.

如果指定的目录不在该位置,它将引发System.IO.DirectoryNotFoundException异常。

参考链接

www.learnfk.com/csharp/c-sh…