English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

File e directory di C#

C# offre le seguenti classi per il file system. Possono essere utilizzate per accedere alle directory, accedere ai file, aprire file per leggere o scrivere, creare nuovi file o spostare file esistenti da una posizione all'altra, ecc.

Nome della classeUso
FileLa classe File è una classe statica che fornisce diverse funzioni, come copia, creazione, spostamento, eliminazione, apertura per lettura o scrittura, cifratura o decifratura, verifica dell'esistenza del file, aggiunta di righe o testo nel contenuto del file, ottenere l'ora dell'ultimo accesso, ecc.
FileInfoLa classe FileInfo fornisce le stesse funzioni della classe statica File. Attraverso la scrittura manuale del codice utilizzato per leggere o scrivere byte dal file, è possibile controllare meglio le operazioni di lettura/scrittura del file.
DirectoryDirectory è una classe statica che fornisce funzioni come creare, spostare, eliminare e accedere ai sottodirectory.  
DirectoryInfoDirectoryInfo fornisce metodi di istanza utilizzati per creare, spostare, eliminare e accedere ai sottodirectory.  
PathPath è una classe statica che fornisce alcune funzioni, come ottenere l'estensione del file, cambiare l'estensione del file, ottenere il percorso fisico assoluto e altre funzioni relative ai percorsi.

File(File)

C# include la classe statica File per eseguire operazioni di i/o sul file system fisico. La classe file statica include vari metodi utili che possono interagire con qualsiasi tipo di file fisico (come file binari, file di testo, ecc.).

Utilizza la classe statica File per eseguire alcune operazioni rapide sui file fisici. A causa delle ragioni di prestazioni, non si consiglia di utilizzare la classe File per più operazioni su più file. In questo caso, utilizzare la classe FileInfo.

Metodi importanti della classe statica File

MetodoUso
AppendAllLinesAggiungi una riga al file e chiudi il file. Se il file specificato non esiste, questo metodo crea un file, scrive la riga specificata nel file e chiude il file.
AppendAllTextApri un file, aggiungi la stringa specificata al file e chiudi il file. Se il file non esiste, questo metodo crea un file, scrive la stringa specificata nel file e chiude il file.
AppendTextCrea uno StreamWriter che aggiunge il testo codificato in UTF-8 a un file esistente, o a un nuovo file se il file specificato non esiste.
CopyCopia il file esistente in un nuovo file. Non è possibile sovrascrivere file con lo stesso nome.
CreateCrea o sovrascrive il file specificato nel percorso specificato.
CreateTextCrea o apri un file utilizzato per scrivere testi codificati in UTF-8.
DecifraDecifra il file cifrato utilizzando il metodo Encrypt del conto corrente.
EliminaElimina il file specificato.
CifraCifra il file in modo che solo l'account utilizzato per cifrare il file possa decifrare il file.
EsisteDetermina se il file specificato esiste.
GetAccessControlOttieni un oggetto FileSecurity che encapsula le voci della lista di controllo degli accessi (ACL) del file specifico.
MoveSposta un file in una nuova posizione e fornisce l'opzione di un nuovo nome di file specifico.
OpenApri un FileStream su un percorso specifico con accesso in lettura/scrittura.
ReadAllBytesApri un file binario, leggi il contenuto del file in un array di byte e chiudi il file.
ReadAllLinesApri un file di testo, leggi tutte le righe del file e chiudi il file.
ReadAllTextApri un file di testo, leggi tutte le righe del file e chiudi il file.
ReplaceSostituisci il contenuto di un altro file con il contenuto di un file specifico, elimina il file originale e crea una copia di backup del file sostituito.
WriteAllBytesCrea un nuovo file, scrivi un array di byte specifico nel file e chiudi il file. Se il file di destinazione esiste già, lo sovrascrive.
WriteAllLinesCrea un nuovo file, scrivi una raccolta di stringhe nel file e chiudi il file.
WriteAllTextCrea un nuovo file, scrivi una stringa specifica nel file e chiudi il file. Se il file di destinazione esiste già, lo sovrascrive.

Aggiungi righe di testo

Usa il metodo AppendAllLines() per aggiungere testo multiriga a un file specifico, come mostrato di seguito.

string dummyLines = "This is first line." + Environment.NewLine +
                    "This is second line." + Environment.NewLine +
                    "This is third line.";
//Apri DummyFile.txt e aggiungi righe. Se il file non esiste, crea e apri.
File.AppendAllLines(@"C:\DummyFile.txt", dummyLines.Split(Environment.NewLine.ToCharArray()).ToList<string>());

Aggiungi stringa

Usa il metodo File.AppendAllText () per aggiungere una stringa a una riga di codice in un file, come mostrato di seguito.

//Apri DummyFile.txt e aggiungi il testo. Se il file non esiste, crea e apri.
File.AppendAllText(@"C:\ DummyFile.txt", "This is File testing");

Sovrascrivere il testo

UtilizzareFile.WriteAllText()Il metodo scrive il testo nel file. Nota che non aggiunge testo, ma sovrascrive il testo esistente.

    Esempio: sovrascrivere testo esistente

//Aprire DummyFile.txt e scrivere il testo. Se il file non esiste, viene creato e aperto.
File.WriteAllText(@"C:\DummyFile.txt", "This is dummy text");

Di seguito è riportato un esempio di come utilizzare la classe statica File per eseguire diverse operazioni.

//Controllare se il file esiste in una posizione specifica
bool isFileExists = File.Exists(@"C:\ DummyFile.txt"); //Restituisce falso
//Copiare DummyFile.txt in un nuovo file DummyFileNew.txt
File.Copy(@"C:\DummyFile.txt", @"D:\NewDummyFile.txt");
//Ottieni l'ora dell'ultimo accesso al file 
DateTime lastAccessTime = File.GetLastAccessTime(@"C:\DummyFile.txt");
//Ottieni l'ora dell'ultima scrittura del file
DateTime lastWriteTime = File.GetLastWriteTime(@"C:\DummyFile.txt");
//Spostare il file a una nuova posizione
File.Move(@"C:\DummyFile.txt", @"D:\DummyFile.txt");
//Aprire il file e restituire FileStream per leggere byte dal file
FileStream fs = File.Open(@"D:\DummyFile.txt", FileMode.OpenOrCreate);
//Aprire il file e restituire StreamReader per leggere stringhe dal file
StreamReader sr = File.OpenText(@"D:\DummyFile.txt");
    
//Eliminare il file
File.Delete(@"C:\DummyFile.txt");

È facile gestire i file fisici utilizzando la classe statica File. Tuttavia, se desideri maggiore flessibilità, puoi utilizzare la classe FileInfo. Allo stesso modo, puoi gestire le directory fisiche utilizzando la classe Directory.

Punti da ricordare

  1. File è una classe statica, che può leggere\scrivere file fisici con meno codice.

  2. La classe File statica offre funzionalità come creare, leggere\scrivere, copiare, spostare, eliminare file fisici.

  3. La classe Directory statica offre funzionalità come creare, copiare, spostare, eliminare directory fisiche con meno codice.

  4. Le classi FileInfo e DirectoryInfo offrono le stesse funzionalità delle classi statiche File e Directory.