一、问题
当文件夹内部有文件存在时,我们直接删除文件夹,会报错“目录不为空”。若我们要删除文件夹及内部包含文件,可以采用递归的方式去删除。即遍历文件夹下的文件和文件夹,如果是文件,则直接删除,如果是文件夹则继续使用递归遍历,直到文件夹内部不包含任何内容后,退出递归。
二、代码
public static void ThoroughDeleteDirectory(string directoryPath)
{
foreach (var path in Directory.GetFileSystemEntries(directoryPath))
{
if (File.Exists(path))
{
// 删除文件夹
File.Delete(path);
}
else
{
// 递归删除文件夹
ThoroughDeleteDirectory(path);
}
}
// 删除空文件夹
Directory.Delete(directoryPath);
}