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

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  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