Exclua todos os arquivos em um diretório em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Exclua todos os arquivos de um diretório com o método DirectoryInfo.GetFiles() em C#
  2. Exclua todos os arquivos de um diretório com o método DirectoryInfo.GetDirectories() em C#
  3. Exclua todos os arquivos de um diretório com o método DirectoryInfo.EnumerateFiles() em C#
  4. Exclua todos os diretórios dentro de um diretório com o método DirectoryInfo.EnumerateDirectories() em C#
Exclua todos os arquivos em um diretório em C#

Este tutorial discutirá os métodos para excluir todos os arquivos dentro de um diretório em C#.

Exclua todos os arquivos de um diretório com o método DirectoryInfo.GetFiles() em C#

O método DirectoryInfo.GetFiles() em C# obtém todos os arquivos dentro de um diretório especificado. O método DirectoryInfo.GetFiles() pega o caminho como um argumento e retorna um array dos objetos FileInfo classe que contêm informações sobre cada arquivo naquele diretório. Podemos obter todos os arquivos dentro do diretório especificado com o método DirectoryInfo.GetFiles() e, em seguida, excluir os arquivos com o método FileInfo.Delete(). O exemplo de código a seguir nos mostra como podemos excluir todos os arquivos dentro de um diretório com os métodos DirectoryInfo.GetFiles() e FileInfo.Delete() em 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");
    }
  }
}

Resultado:

Files deleted successfully

No código acima, excluímos todos os arquivos dentro do caminho C:\Sample\ com os métodos DirectoryInfo.GetFiles() e FileInfo.Delete() em C#.

Exclua todos os arquivos de um diretório com o método DirectoryInfo.GetDirectories() em C#

Se também quisermos excluir todos os subdiretórios dentro do diretório C:\Sample\, podemos usar o método DirectoryInfo.GetDirectories() para obter todos os subdiretórios dentro de C:\Sample\ diretório. O método DirectoryInfo.GetDirectories() retorna um array dos objetos DirectoryInfo classe que contém informações sobre todos os subdiretórios. Podemos deletar os subdiretórios com o método DirectoryInfo.Delete(). Também podemos excluir todos os subdiretórios dentro de cada subdiretório especificando true dentro dos argumentos do método DirectoryInfo.Delete(). O exemplo de código a seguir nos mostra como podemos excluir todos os arquivos e subdiretórios dentro de um diretório com o método DirectoryInfo.GetDirectories() em 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");
    }
  }
}

Resultado:

Files and Sub - directories deleted successfully

No código acima, excluímos todos os arquivos e todos os subdiretórios dentro do diretório C:\Sample com os métodos FileInfo.Delete() e DirectoryInfo.Delete().

Exclua todos os arquivos de um diretório com o método DirectoryInfo.EnumerateFiles() em C#

Os métodos discutidos na seção anterior funcionam bem, mas existe uma maneira mais robusta de fazer a mesma coisa. O método DirectoryInfo.EnumerateFiles() itera através de cada arquivo dentro do diretório. Essa abordagem é muito mais rápida do que a anterior. O método DirectoryInfo.EnumerateFiles() pode ser usado dentro do loop foreach para obter um objeto da classe FileInfo em cada iteração. Podemos excluir cada arquivo com o método FileInfo.Delete(). O exemplo de código a seguir nos mostra como podemos excluir todos os arquivos dentro de um diretório com o método DirectoryInfo.EnumerateFiles() em 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");
    }
  }
}

Resultado:

Files deleted successfully

O código acima exclui todos os arquivos dentro do diretório C:\Sample com os métodos DirectoryInfo.EnumerateFiles() e FileInfo.Delete() em C#.

Exclua todos os diretórios dentro de um diretório com o método DirectoryInfo.EnumerateDirectories() em C#

Se também quisermos excluir todos os subdiretórios de nosso diretório principal, também podemos usar o método DirectoryInfo.EnumerateDirectories() em C#. O método DirectoryInfo.EnumerateDirectories() é usado para iterar em cada subdiretório dentro do diretório principal. O método DirectoryInfo.EnumerateDirectories() pode ser usado dentro do loop foreach para obter um objeto da classe DirectoryInfo em cada iteração. Podemos deletar cada arquivo com o método DirectoryInfo.Delete(). Também podemos especificar true como o parâmetro do método DirectoryInfo.Delete() se quisermos deletar todos os subdiretórios dentro de cada subdiretório. O exemplo de código a seguir nos mostra como podemos excluir todos os arquivos e subdiretórios dentro de um diretório com o método DirectoryInfo.EnumerateFiles() em 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");
    }
  }
}

Resultado:

Files and sub - directories deleted successfully

Excluímos todos os arquivos e todos os subdiretórios dentro do diretório C:\Sample com os métodos FileInfo.Delete() e DirectoryInfo.Delete() em 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

Artigo relacionado - Csharp File

Artigo relacionado - Csharp Directory