Como deletar todos os arquivos e pastas em um diretório em C#?
Olá a todos! Sou um desenvolvedor C# iniciante e me deparei com o seguinte problema. Preciso escrever uma função que limpe uma pasta de todos os arquivos e subpastas. Tentei várias maneiras, mas sempre algo dá errado.
Aqui está meu código:
```csharp
string path = @"C:\Temp\MyFolder";
if (Directory.Exists(path))
{
Directory.Delete(path, true);
Directory.CreateDirectory(path);
}
```
O problema é que, ao tentar deletar a pasta com arquivos que estão sendo usados por outro processo, ocorre uma exceção IOException. E se tento deletar os arquivos um por um com File.Delete, as pastas permanecem e preciso deletá-las recursivamente, mas não consigo lidar com a aninhamento.
Também tentei esta variação:
```csharp
foreach (string file in Directory.GetFiles(path))
{
File.Delete(file);
}
foreach (string dir in Directory.GetDirectories(path))
{
Directory.Delete(dir, true);
}
```
Mas se houver subpastas com arquivos dentro da pasta, Directory.GetDirectories não as retorna,