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#序列化
