.NET 在 System.IO 提供 Directory 靜態類別與 DirectoryInfo 實例類別,支援建立、移動、列舉、刪除目錄,以及設定隱藏、唯讀等屬性。
Attributes:0x01 唯讀、0x02 隱藏Name、Parent、Root:路徑相關資訊CreationTime、LastAccessTime、LastWriteTime:時間戳記| 方法 | 說明 |
|---|---|
CreateDirectory(path) | 建立單層子目錄 |
CreateDirectories(path) | 建立多層目錄(含父目錄) |
CreateFile(filename) | 在目前目錄建立新檔案 |
Delete() | 刪除目錄 |
GetDirectories() | 取得子目錄清單 |
using System;
using System.IO;
class DirectoryTest {
public static void Main() {
DirectoryInfo d = new DirectoryInfo(@"c:\C#");
try {
DirectoryInfo d1 = d.CreateSubdirectory("file1");
DirectoryInfo d2 = d.CreateSubdirectory(@"file1\file2"); // 等同 d1.CreateSubdirectory("file2")
Console.WriteLine("Create directory successfully!");
} catch (IOException e) {
Console.WriteLine("Failed: {0}", e.Message);
}
}
}
注意:IOException 通常因目錄已存在觸發,捕捉後可提示使用者或略過。
using System;
using System.IO;
class DirectoryTest {
public static void Main() {
DirectoryInfo d = new DirectoryInfo(@"c:\C#\file1");
try {
foreach (DirectoryInfo dir in d.GetDirectories()) {
dir.Delete(true); // true = 遞迴刪除子目錄
}
d.Delete(true);
Console.WriteLine("Delete successfully!");
} catch (DirectoryNotFoundException e) {
Console.WriteLine("Not found: {0}", e.Message);
}
}
}
@ 字串常值或 Path.Combine 避免逸出字元錯誤。IOException、UnauthorizedAccessException、DirectoryNotFoundException 分別處理,提供精確錯誤訊息。Directory.EnumerateDirectories 延遲載入,減少記憶體壓力。