C#程式:刪除空目錄和非空目錄


介紹

在計算機上,我們可以將檔案儲存在目錄中,也稱為資料夾。目錄還包含指向其他目錄和檔案的快捷方式。在這裡,我們將討論使用C#程式刪除空目錄和非空目錄的方法。一個名為Directory的靜態類提供了用於處理目錄的靜態方法。DirectoryInfo物件提供了有關特定目錄的詳細資訊。

刪除空目錄和非空目錄

現在我們已經有了一個目錄(空或非空),我們需要刪除它。空目錄表示目錄中不存在任何檔案或子目錄。目錄可以被認為是檔案和子目錄的集合;它可能包含也可能不包含資料。包含檔案或其他目錄的目錄稱為非空目錄。我們可以使用Directory類的Delete()方法刪除目錄。此方法有兩個過載版本:

  • Delete(String)

  • Delete(String,Boolean)

Delete(String)

此方法包含在Directory類中。此方法用於刪除空目錄。此方法從指定的地址或位置刪除目錄。

public static void Delete (string DirLocation); 

其中DirLocation是已提供且我們要刪除的目錄的地址,此引數的型別為字串。現在,執行此命令後可能會發生一些錯誤。

如果已經存在與DirLocation指定的名稱和地址相同的名稱的檔案,則會丟擲IO異常。或者,子資料夾是隻讀的。未授權訪問異常是另一種可能發生的錯誤型別。如果呼叫者不具備所需的授權,則會丟擲此異常。當DirLocation為空時,會發生Argument Null異常,此錯誤將被丟擲。Path Too Long異常是另一種可能發生的錯誤,當給定的DirLocation、檔名或兩者都超過系統定義的最大長度時,此異常將出現。如果找不到DirLocation或無法找到,或者指定的路徑錯誤,則會出現Directory Not Found異常。

演算法

下面的演算法將逐步說明編寫刪除目錄程式的過程。在此演算法中,我們將使用Delete(String)方法。

例如,我們將考慮一個名為“csk”的空目錄。現在,我們將使用Delete(String)方法刪除“csk”目錄。

步驟1 − 我們將使用Directory.Delete方法透過傳遞目錄地址來刪除目錄。

步驟2 − 使用Console.WriteLine(),我們寫入目錄刪除已完成。

示例

// A C# program which goes on given address and deletes the empty directory
// Using Delete(string) method
using System;
using System.IO;
class TutPoint {
   static void Main(){

      // Deleting the empty directory by using the Delete() method
      Directory.Delete("D:/csk");
      Console.WriteLine("Deleted");
   }
}

輸出

Deleted

Delete(String, Boolean)

此方法也包含在Directory類中。此方法用於刪除指定的目錄以及(如果指定)目錄內的任何子目錄和檔案。

public static void Delete (string DirLocation, bool recursive); 

此方法用於刪除指定的目錄以及其中包含的任何子目錄和檔案。現在,執行此命令後可能會發生一些錯誤。

如果已經存在與DirLocation指定的名稱和地址相同的名稱的檔案,則會丟擲IO異常。或者,子資料夾是隻讀的。未授權訪問異常是另一種可能發生的錯誤型別。如果呼叫者不具備所需的授權,則會丟擲此異常。當DirLocation為空時,會發生Argument Null異常,此錯誤將被丟擲。

Path Too Long異常是另一種可能發生的錯誤,當給定的DirLocation、檔名或兩者都超過系統設定的最大長度時,此異常將出現。如果找不到DirLocation或無法找到,或者指定的路徑錯誤,則會出現Directory Not Found異常。

演算法

下面的演算法將逐步說明編寫刪除目錄程式的過程。在此演算法中,我們將使用Delete(String, Boolean)方法。

例如,我們將考慮一個名為“csk”的非空目錄,其中包含D驅動器中的一個名為“msd”的檔案。現在,我們將使用Delete(String, Boolean)方法刪除“csk”目錄。

步驟1  我們將使用Directory.Delete(String, Boolean)方法透過傳遞目錄地址來刪除目錄。

步驟2  此處true是作為布林值傳遞的,因為它檢查子目錄的存在。

步驟3 − 使用Console.WriteLine(),我們寫入目錄刪除已完成。

示例

// A C# program which goes on given address and deletes the non empty directory

// Using Delete(string) method
using System;
using System.IO;
class TutPoint {
   static void Main() {

      // Deleting the non-empty directory by using the Delete() method
      Directory.Delete("D:/csk",true);
      Console.WriteLine("Deleted");
   }
}

輸出

Deleted

時間複雜度

在演算法中,我們使用了Directory類的一個函式。此處,Delete(String)的時間複雜度為O(1),Delete(String, Boolean)的時間複雜度也為O(1)。

結論

我們已經廣泛討論了C#程式刪除空目錄和非空目錄的方法。首先,我們討論了目錄的定義及其用途。然後,我們討論了兩種不同的刪除目錄的方法。最後,我們看到了演算法和示例程式碼。我們希望本文能幫助您增強對C#的瞭解。

更新於:2023年4月21日

瀏覽量:512

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.