在 C# 中刪除一個目錄中的所有檔案

Muhammad Maisam Abbas 2024年2月16日
  1. 在 C# 中使用 DirectoryInfo.GetFiles() 方法刪除目錄中的所有檔案
  2. 在 C# 中使用 DirectoryInfo.GetDirectories() 方法刪除目錄中的所有檔案
  3. 使用 C# 中的 DirectoryInfo.EnumerateFiles() 方法刪除目錄中的所有檔案
  4. 在 C# 中使用 DirectoryInfo.EnumerateDirectories() 方法刪除目錄中的所有目錄
在 C# 中刪除一個目錄中的所有檔案

本教程將討論刪除 C# 目錄中所有檔案的方法。

在 C# 中使用 DirectoryInfo.GetFiles() 方法刪除目錄中的所有檔案

C# 中的 DirectoryInfo.GetFiles() 方法獲取指定目錄內的所有檔案。DirectoryInfo.GetFiles() 方法將路徑作為引數,並返回 FileInfo物件的陣列,其中包含有關該目錄中每個檔案的資訊。我們可以使用 DirectoryInfo.GetFiles() 方法獲取指定目錄內的所有檔案,然後使用 FileInfo.Delete() 方法刪除檔案。以下程式碼示例向我們展示瞭如何使用 C# 中的 DirectoryInfo.GetFiles()FileInfo.Delete() 方法刪除目錄中的所有檔案。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      FileInfo[] files = di.GetFiles();
      foreach (FileInfo file in files) {
        file.Delete();
      }
      Console.WriteLine("Files deleted successfully");
    }
  }
}

輸出:

Files deleted successfully

在上面的程式碼中,我們使用 C# 中的 DirectoryInfo.GetFiles()FileInfo.Delete() 方法刪除了路徑 C:\Sample\中的所有檔案。

在 C# 中使用 DirectoryInfo.GetDirectories() 方法刪除目錄中的所有檔案

如果我們還想刪除 C:\Sample\目錄中的所有子目錄,則可以使用 DirectoryInfo.GetDirectories() 方法來獲取 C:\Sample\目錄中的所有子目錄。DirectoryInfo.GetDirectories() 方法返回 DirectoryInfo物件的陣列,其中包含有關所有子目錄的資訊。我們可以使用 DirectoryInfo.Delete() 方法刪除子目錄。我們還可以通過在 DirectoryInfo.Delete() 方法的引數內指定 true 來刪除每個子目錄內的所有子目錄。下面的程式碼示例向我們展示瞭如何使用 C# 中的 DirectoryInfo.GetDirectories() 方法刪除目錄中的所有檔案和子目錄。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      FileInfo[] files = di.GetFiles();
      foreach (FileInfo file in files) {
        file.Delete();
      }
      DirectoryInfo[] subDirectories = di.GetDirectories();
      foreach (DirectoryInfo subDirectory in subDirectories) {
        subDirectory.Delete(true);
      }
      Console.WriteLine("Files and Sub-directories deleted successfully");
    }
  }
}

輸出:

Files and Sub-directories deleted successfully

在上面的程式碼中,我們使用 FileInfo.Delete()DirectoryInfo.Delete() 方法刪除了 C:\Sample 目錄內的所有檔案和所有子目錄。

使用 C# 中的 DirectoryInfo.EnumerateFiles() 方法刪除目錄中的所有檔案

上一節中討論的方法可以很好地完成工作,但是有一種更強大的方法可以完成相同的操作。DirectoryInfo.EnumerateFiles() 方法遍歷目錄內的每個檔案。這種方法比以前的方法快得多。可以在 foreach 迴圈內使用 DirectoryInfo.EnumerateFiles() 方法,以在每次迭代中獲取 FileInfo 類的物件。我們可以使用 FileInfo.Delete() 方法刪除每個檔案。以下程式碼示例向我們展示瞭如何使用 C# 中的 DirectoryInfo.EnumerateFiles() 方法刪除目錄中的所有檔案。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void method2() {}
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      foreach (FileInfo file in di.EnumerateFiles()) {
        file.Delete();
      }
      foreach (DirectoryInfo subDirectory in di.EnumerateDirectories()) {
        subDirectory.Delete(true);
      }
      Console.WriteLine("Files deleted successfully");
    }
  }
}

輸出:

Files deleted successfully

上面的程式碼使用 C# 中的 DirectoryInfo.EnumerateFiles()FileInfo.Delete() 方法刪除 C:\Sample 目錄中的所有檔案。

在 C# 中使用 DirectoryInfo.EnumerateDirectories() 方法刪除目錄中的所有目錄

如果我們還想刪除主目錄中的所有子目錄,則還可以在 C# 中使用 DirectoryInfo.EnumerateDirectories() 方法。DirectoryInfo.EnumerateDirectories() 方法用於遍歷主目錄中的每個子目錄。可以在 foreach 迴圈內使用 DirectoryInfo.EnumerateDirectories() 方法,以在每次迭代中獲取 DirectoryInfo 類的物件。我們可以使用 DirectoryInfo.Delete() 方法刪除每個檔案。如果要刪除每個子目錄中的所有子目錄,也可以將 true 指定為 DirectoryInfo.Delete() 方法的引數。下面的程式碼示例向我們展示瞭如何使用 C# 中的 DirectoryInfo.EnumerateFiles() 方法刪除目錄中的所有檔案和子目錄。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void method2() {}
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      foreach (FileInfo file in di.EnumerateFiles()) {
        file.Delete();
      }
      foreach (DirectoryInfo subDirectory in di.EnumerateDirectories()) {
        subDirectory.Delete(true);
      }
      foreach (DirectoryInfo subDirectory in di.EnumerateDirectories()) {
        subDirectory.Delete(true);
      }
      Console.WriteLine("Files and sub-directories deleted successfully");
    }
  }
}

輸出:

Files and sub-directories deleted successfully

我們使用 C# 中的 FileInfo.Delete()DirectoryInfo.Delete() 方法刪除了 C:\Sample 目錄內的所有檔案和所有子目錄。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Csharp File

相關文章 - Csharp Directory