¿Cómo eliminar todos los archivos y carpetas en un directorio en C#?
¡Hola a todos! Soy un desarrollador C# principiante y me encontré con este problema. Necesito escribir una función que limpie una carpeta de todos los archivos y subcarpetas. Probé varios métodos, pero cada vez algo sale mal.
Aquí está mi código:
```csharp
string path = @"C:\Temp\MyFolder";
if (Directory.Exists(path))
{
Directory.Delete(path, true);
Directory.CreateDirectory(path);
}
```
El problema es que al intentar eliminar la carpeta con archivos que están siendo usados por otro proceso, se lanza una excepción IOException. Y si intento eliminar los archivos uno por uno con File.Delete, las carpetas quedan y necesito eliminarlas recursivamente, pero no puedo manejar la anidación.
También probé esta variante:
```csharp
foreach (string file in Directory.GetFiles(path))
{
File.Delete(file);
}
foreach (string dir in Directory.GetDirectories(path))
{
Directory.Delete(dir, true);
}
```
Pero si en la carpeta hay subcarpetas con archivos, Directory.GetDirectories no las devuelve,