Avatar ·

如何在C#中删除目录中的所有文件和文件夹?

大家好!我是一名初学C#的开发者,遇到了一个问题。我需要编写一个函数来清空文件夹中的所有文件和子文件夹。我尝试了几种方法,但每次都会出问题。 这是我的代码: ```csharp string path = @"C:\Temp\MyFolder"; if (Directory.Exists(path)) { Directory.Delete(path, true); Directory.CreateDirectory(path); } ``` 问题在于,当尝试删除被其他进程使用的文件时,会抛出IOException异常。而如果我尝试通过File.Delete逐个删除文件,文件夹会保留下来,需要递归删除,但我搞不清楚嵌套结构。 我还尝试了这种方法: ```csharp foreach (string file in Directory.GetFiles(path)) { File.Delete(file); } foreach (string dir in Directory.GetDirectories(path)) { Directory.Delete(dir, true); } ``` 但如果文件夹中有包含文件的子文件夹,Directory.GetDirectories不会返回它们。