Eliminar todos los archivos de un directorio en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Elimine todos los archivos dentro de un directorio con el método DirectoryInfo.GetFiles() en C#
  2. Eliminar todos los archivos dentro de un directorio con el método DirectoryInfo.GetDirectories() en C#
  3. Eliminar todos los archivos dentro de un directorio con el método DirectoryInfo.EnumerateFiles() en C#
  4. Eliminar todos los directorios dentro de un directorio con el método DirectoryInfo.EnumerateDirectories() en C#
Eliminar todos los archivos de un directorio en C#

Este tutorial discutirá los métodos para eliminar todos los archivos dentro de un directorio en C#.

Elimine todos los archivos dentro de un directorio con el método DirectoryInfo.GetFiles() en C#

El método DirectoryInfo.GetFiles() en C# obtiene todos los archivos dentro de un directorio específico. El método DirectoryInfo.GetFiles() toma la ruta como argumento y devuelve un array de los objetos clase FileInfo que contienen información sobre cada archivo en ese directorio. Podemos obtener todos los archivos dentro del directorio especificado con el método DirectoryInfo.GetFiles() y luego eliminar los archivos con el método FileInfo.Delete(). El siguiente ejemplo de código nos muestra cómo podemos eliminar todos los archivos dentro de un directorio con el método DirectoryInfo.GetFiles() y FileInfo.Delete() en C#.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      FileInfo[] files = di.GetFiles();
      foreach (FileInfo file in files) {
        file.Delete();
      }
      Console.WriteLine("Files deleted successfully");
    }
  }
}

Producción :

Files deleted successfully

En el código anterior, eliminamos todos los archivos dentro de la ruta C:\Sample\ con los métodos DirectoryInfo.GetFiles() y FileInfo.Delete() en C#.

Eliminar todos los archivos dentro de un directorio con el método DirectoryInfo.GetDirectories() en C#

Si también queremos borrar todos los subdirectorios dentro del directorio C:\Sample\, podemos usar el método DirectoryInfo.GetDirectories() para obtener todos los subdirectorios dentro del C:\Sample\ directorio. El método DirectoryInfo.GetDirectories() devuelve un array de los objetos clase DirectoryInfo que contienen información sobre todos los subdirectorios. Podemos eliminar los subdirectorios con el método DirectoryInfo.Delete(). También podemos eliminar todos los subdirectorios dentro de cada subdirectorio especificando true dentro de los argumentos del método DirectoryInfo.Delete(). El siguiente ejemplo de código nos muestra cómo podemos eliminar todos los archivos y subdirectorios dentro de un directorio con el método DirectoryInfo.GetDirectories() en C#.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      FileInfo[] files = di.GetFiles();
      foreach (FileInfo file in files) {
        file.Delete();
      }
      DirectoryInfo[] subDirectories = di.GetDirectories();
      foreach (DirectoryInfo subDirectory in subDirectories) {
        subDirectory.Delete(true);
      }
      Console.WriteLine("Files and Sub-directories deleted successfully");
    }
  }
}

Producción :

Files and Sub-directories deleted successfully

En el código anterior, eliminamos todos los archivos y todos los subdirectorios dentro del directorio C:\Sample con los métodos FileInfo.Delete() y DirectoryInfo.Delete().

Eliminar todos los archivos dentro de un directorio con el método DirectoryInfo.EnumerateFiles() en C#

Los métodos discutidos en la sección anterior funcionan bien, pero hay una forma más sólida de hacer lo mismo. El método DirectoryInfo.EnumerateFiles() recorre cada archivo dentro del directorio. Este enfoque es mucho más rápido que el enfoque anterior. El método DirectoryInfo.EnumerateFiles() se puede utilizar dentro del bucle foreach para obtener un objeto de la clase FileInfo en cada iteración. Podemos eliminar cada archivo con el método FileInfo.Delete(). El siguiente ejemplo de código nos muestra cómo podemos eliminar todos los archivos dentro de un directorio con el método DirectoryInfo.EnumerateFiles() en C#.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void method2() {}
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      foreach (FileInfo file in di.EnumerateFiles()) {
        file.Delete();
      }
      foreach (DirectoryInfo subDirectory in di.EnumerateDirectories()) {
        subDirectory.Delete(true);
      }
      Console.WriteLine("Files deleted successfully");
    }
  }
}

Producción :

Files deleted successfully

El código anterior elimina todos los archivos dentro del directorio C:\Sample con los métodos DirectoryInfo.EnumerateFiles() y FileInfo.Delete() en C#.

Eliminar todos los directorios dentro de un directorio con el método DirectoryInfo.EnumerateDirectories() en C#

Si también queremos eliminar todos los subdirectorios dentro de nuestro directorio principal, también podemos usar el método DirectoryInfo.EnumerateDirectories() en C#. El método DirectoryInfo.EnumerateDirectories() se utiliza para recorrer cada subdirectorio dentro del directorio principal. El método DirectoryInfo.EnumerateDirectories() se puede utilizar dentro del bucle foreach para obtener un objeto de la clase DirectoryInfo en cada iteración. Podemos eliminar cada archivo con el método DirectoryInfo.Delete(). También podemos especificar true como parámetro del método DirectoryInfo.Delete() si queremos eliminar todos los subdirectorios dentro de cada subdirectorio. El siguiente ejemplo de código nos muestra cómo podemos eliminar todos los archivos y subdirectorios dentro de un directorio con el método DirectoryInfo.EnumerateFiles() en C#.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delete_all_files {
  class Program {
    static void method2() {}
    static void Main(string[] args) {
      DirectoryInfo di = new DirectoryInfo(@"C:\Sample");
      foreach (FileInfo file in di.EnumerateFiles()) {
        file.Delete();
      }
      foreach (DirectoryInfo subDirectory in di.EnumerateDirectories()) {
        subDirectory.Delete(true);
      }
      foreach (DirectoryInfo subDirectory in di.EnumerateDirectories()) {
        subDirectory.Delete(true);
      }
      Console.WriteLine("Files and sub-directories deleted successfully");
    }
  }
}

Producción :

Files and sub-directories deleted successfully

Eliminamos todos los archivos y todos los subdirectorios dentro del directorio C:\Sample con los métodos FileInfo.Delete() y DirectoryInfo.Delete() en C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artículo relacionado - Csharp File

Artículo relacionado - Csharp Directory