C#DirectoryInfo类用法详解

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

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示例

在下面的例子中,通过指定目录路径来创建一个名称为:yiibai_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\yiibai_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 应该能看到有一个名称为:yiibai_dir的目录。

DirectoryInfo类还提供删除创建的目录的删除方法。

C# DirectoryInfo示例:删除目录

在以下程序中,我们将删除在上面示例程序中创建的yiibai_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\yiibai_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 应该能看到yiibai_dir目录已经被删除了。

如果指定位置不存在目录,它将抛出一个System.IO.DirectoryNotFoundException异常。您可以自己修改上面代码测试一下。

到此这篇关于C#DirectoryInfo类用法详解的文章就介绍到这了,更多相关C#DirectoryInfo类内容请搜索好代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好代码网!

您可能有感兴趣的文章
使用grpcui测试ASP.NET core的gRPC服务

.NET Core使用Eureka实现服务注册

.Net Core静态文件资源的使用

.net任务调度框架FluentScheduler简介

.NET Core项目使用swagger开发组件