如何在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不会返回它们。