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