C# Directory.Delete – 删除目录

发布时间 2023-12-29 14:01:14作者: yinghualeihenmei

原文链接:https://pythonjishu.com/qxepdysexyunich/

C#中的Directory.Delete()方法用于删除指定路径下的目录,其中包括目录中所有的文件和文件夹。该方法支持递归删除目录及其子目录,同时也支持保留目录树中的空目录。该方法存在多个重载形式,可以根据传入的参数实现多种不同的删除操作。

使用方法
public static void Delete(string path, bool recursive);
其中,path参数是要删除的目录路径。recursive参数是一个bool类型的值,表示是否递归删除目录及其子目录。如果该值为true,则递归删除;如果该值为false,则仅删除该目录下的文件和子目录。

示例一
string dirPath = @"C:\Users\Administrator\Documents\TestFolder";
if (Directory.Exists(dirPath))
{
Directory.Delete(dirPath, true);
Console.WriteLine("目录已被删除。");
}
else
{
Console.WriteLine("目录不存在。");
}
以上示例中,定义了一个dirPath变量,表示要删除的目录路径。首先使用Directory.Exists()方法判断目录是否存在,如果存在则调用Directory.Delete()方法删除该目录及其所有子目录。

示例二
string dirPath = @"C:\Users\Administrator\Documents\TestFolder";
string backupPath = @"D:\Backup\TestFolder";
if (Directory.Exists(dirPath))
{
// 先将目录备份至其他位置
Directory.Move(dirPath, backupPath);
Console.WriteLine("目录备份完成。");

// 删除目录
Directory.Delete(backupPath, true);
Console.WriteLine("目录已被删除。");
}
else
{
Console.WriteLine("目录不存在。");
}
以上示例中,定义了一个dirPath变量,表示要删除的目录路径,同时还定义了一个backupPath变量,表示要备份的目录路径。首先使用Directory.Move()方法将目录备份至其他位置,再使用Directory.Delete()方法递归地删除目录及其所有子目录。

注意事项
在删除目录之前,应该确保该目录中所有的文件和子目录均已被处理完毕,并且确保程序对于目录是否存在进行了正确的判断。因为Directory.Delete()方法会将指定目录下的所有文件和子目录都删除,包括当前目录本身。因此如果未正确判断目录是否存在,可能会误删其他文件或目录。