Elimina tutti i file in una directory in C#

Muhammad Maisam Abbas 16 febbraio 2024
  1. Elimina tutti i file all’interno di una directory con il metodo DirectoryInfo.GetFiles() in C#
  2. Elimina tutti i file all’interno di una directory con il metodo DirectoryInfo.GetDirectories() in C#
  3. Elimina tutti i file all’interno di una directory con il metodo DirectoryInfo.EnumerateFiles() in C#
  4. Elimina tutte le directory all’interno di una directory con il metodo DirectoryInfo.EnumerateDirectories() in C#
Elimina tutti i file in una directory in C#

Questo tutorial discuterà i metodi per eliminare tutti i file all’interno di una directory in C#.

Elimina tutti i file all’interno di una directory con il metodo DirectoryInfo.GetFiles() in C#

Il metodo DirectoryInfo.GetFiles() in C# ottiene tutti i file all’interno di una directory specificata. Il metodo DirectoryInfo.GetFiles() accetta il percorso come argomento e restituisce un array di oggetti FileInfo classe che contengono informazioni su ogni file in quella directory. Possiamo ottenere tutti i file all’interno della directory specificata con il metodo DirectoryInfo.GetFiles() e quindi eliminare i file con il metodo FileInfo.Delete(). Il seguente esempio di codice ci mostra come possiamo eliminare tutti i file all’interno di una directory con il metodo DirectoryInfo.GetFiles() e FileInfo.Delete() in 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");
    }
  }
}

Produzione:

Files deleted successfully

Nel codice sopra, abbiamo cancellato tutti i file all’interno del percorso C:\Sample\ con i metodi DirectoryInfo.GetFiles() e FileInfo.Delete() in C#.

Elimina tutti i file all’interno di una directory con il metodo DirectoryInfo.GetDirectories() in C#

Se vogliamo anche eliminare tutte le sottodirectory all’interno della directory C:\Sample\, possiamo usare il metodo DirectoryInfo.GetDirectories() per ottenere tutte le sottodirectory all’interno di C:\Sample\ directory. Il metodo DirectoryInfo.GetDirectories() restituisce un array di oggetti DirectoryInfo class che contengono informazioni su tutte le sottodirectory. Possiamo eliminare le sottodirectory con il metodo DirectoryInfo.Delete(). Possiamo anche eliminare tutte le sottodirectory all’interno di ciascuna sottodirectory specificando true all’interno degli argomenti del metodo DirectoryInfo.Delete(). Il seguente esempio di codice ci mostra come possiamo eliminare tutti i file e le sottodirectory all’interno di una directory con il metodo DirectoryInfo.GetDirectories() in 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");
    }
  }
}

Produzione:

Files and Sub - directories deleted successfully

Nel codice sopra, abbiamo cancellato tutti i file e tutte le sottodirectory all’interno della directory C:\Sample con i metodi FileInfo.Delete() e DirectoryInfo.Delete().

Elimina tutti i file all’interno di una directory con il metodo DirectoryInfo.EnumerateFiles() in C#

I metodi discussi nella sezione precedente fanno bene il lavoro, ma esiste un modo più robusto per fare la stessa cosa. Il metodo DirectoryInfo.EnumerateFiles() itera attraverso ogni file all’interno della directory. Questo approccio è molto più veloce dell’approccio precedente. Il metodo DirectoryInfo.EnumerateFiles() può essere utilizzato all’interno del bucle foreach per ottenere un oggetto della classe FileInfo in ogni iterazione. Possiamo cancellare ogni file con il metodo FileInfo.Delete(). Il seguente esempio di codice ci mostra come possiamo eliminare tutti i file all’interno di una directory con il metodo DirectoryInfo.EnumerateFiles() in 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");
    }
  }
}

Produzione:

Files deleted successfully

Il codice precedente cancella tutti i file all’interno della directory C:\Sample con i metodi DirectoryInfo.EnumerateFiles() e FileInfo.Delete() in C#.

Elimina tutte le directory all’interno di una directory con il metodo DirectoryInfo.EnumerateDirectories() in C#

Se vogliamo anche eliminare tutte le sottodirectory all’interno della nostra directory principale, possiamo anche usare il metodo DirectoryInfo.EnumerateDirectories() in C#. Il metodo DirectoryInfo.EnumerateDirectories() viene utilizzato per scorrere ogni sottodirectory all’interno della directory principale. Il metodo DirectoryInfo.EnumerateDirectories() può essere utilizzato all’interno del bucle foreach per ottenere un oggetto della classe DirectoryInfo in ogni iterazione. Possiamo cancellare ogni file con il metodo DirectoryInfo.Delete(). Possiamo anche specificare true come parametro del metodo DirectoryInfo.Delete() se vogliamo eliminare tutte le sottodirectory all’interno di ciascuna sottodirectory. Il seguente esempio di codice ci mostra come possiamo eliminare tutti i file e le sottodirectory all’interno di una directory con il metodo DirectoryInfo.EnumerateFiles() in 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");
    }
  }
}

Produzione:

Files and sub - directories deleted successfully

Abbiamo cancellato tutti i file e tutte le sottodirectory all’interno della directory C:\Sample con i metodi FileInfo.Delete() e DirectoryInfo.Delete() in 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

Articolo correlato - Csharp File

Articolo correlato - Csharp Directory