在 C# 中刪除一個目錄中的所有檔案
-
在 C# 中使用
DirectoryInfo.GetFiles()
方法刪除目錄中的所有檔案 -
在 C# 中使用
DirectoryInfo.GetDirectories()
方法刪除目錄中的所有檔案 -
使用 C# 中的
DirectoryInfo.EnumerateFiles()
方法刪除目錄中的所有檔案 -
在 C# 中使用
DirectoryInfo.EnumerateDirectories()
方法刪除目錄中的所有目錄
本教程將討論刪除 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
目錄內的所有檔案和所有子目錄。
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