C# DirectoryInfo類

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異常。您可以自己修改上面代碼測試一下。