Condividi tramite


File Classe

Definizione

Fornisce metodi statici per la creazione, la copia, l'eliminazione, lo spostamento e l'apertura di un singolo file e facilita la creazione di oggetti FileStream.

public ref class File abstract sealed
public ref class File sealed
public static class File
public sealed class File
[System.Runtime.InteropServices.ComVisible(true)]
public static class File
type File = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type File = class
Public Class File
Public NotInheritable Class File
Ereditarietà
File
Attributi

Esempio

Nell'esempio seguente viene illustrato come usare la classe File per verificare se esiste un file e, a seconda del risultato, creare un nuovo file e scrivervi oppure aprire il file esistente e leggerlo. Prima di eseguire il codice, creare una cartella c:\temp.

using namespace System;
using namespace System::IO;
int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   if (  !File::Exists( path ) )
   {
      
      // Create a file to write to.
      StreamWriter^ sw = File::CreateText( path );
      try
      {
         sw->WriteLine( "Hello" );
         sw->WriteLine( "And" );
         sw->WriteLine( "Welcome" );
      }
      finally
      {
         if ( sw )
                  delete (IDisposable^)(sw);
      }
   }

   // Open the file to read from.
   StreamReader^ sr = File::OpenText( path );
   try
   {
      String^ s = "";
      while ( s = sr->ReadLine() )
      {
         Console::WriteLine( s );
      }
   }
   finally
   {
      if ( sr )
            delete (IDisposable^)(sr);
   }

   try
   {
      String^ path2 = String::Concat( path, "temp" );
      
      // Ensure that the target does not exist.
      File::Delete( path2 );
      
      // Copy the file.
      File::Copy( path, path2 );
      Console::WriteLine( "{0} was copied to {1}.", path, path2 );
      
      // Delete the newly created file.
      File::Delete( path2 );
      Console::WriteLine( "{0} was successfully deleted.", path2 );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }
}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";
        if (!File.Exists(path))
        {
            // Create a file to write to.
            using (StreamWriter sw = File.CreateText(path))
            {
                sw.WriteLine("Hello");
                sw.WriteLine("And");
                sw.WriteLine("Welcome");
            }
        }

        // Open the file to read from.
        using (StreamReader sr = File.OpenText(path))
        {
            string s;
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }
    }
}
open System.IO

let path = @"c:\temp\MyTest.txt"

if File.Exists path |> not then
    // Create a file to write to.
    use sw = File.CreateText path
    sw.WriteLine "Hello"
    sw.WriteLine "And"
    sw.WriteLine "Welcome"

// Open the file to read from.
do
    use sr = File.OpenText path
    let mutable s = sr.ReadLine()

    while isNull s |> not do
        printfn $"{s}"
        s <- sr.ReadLine()
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        If File.Exists(path) = False Then
            ' Create a file to write to.
            Using sw As StreamWriter = File.CreateText(path)
                sw.WriteLine("Hello")
                sw.WriteLine("And")
                sw.WriteLine("Welcome")
           End Using
        End If

        ' Open the file to read from.
        Using sr As StreamReader = File.OpenText(path)
            Do While sr.Peek() >= 0
                Console.WriteLine(sr.ReadLine())
            Loop
        End Using
    End Sub
End Class

Commenti

Usare la classe File per operazioni tipiche, ad esempio la copia, lo spostamento, la ridenominazione, la creazione, l'apertura, l'eliminazione e l'aggiunta a un singolo file alla volta. È anche possibile utilizzare la classe File per ottenere e impostare attributi di file o DateTime informazioni correlate alla creazione, all'accesso e alla scrittura di un file. Per eseguire operazioni su più file, vedere Directory.GetFiles o DirectoryInfo.GetFiles.

Molti dei metodi di File restituiscono altri tipi di I/O quando si creano o si aprono file. È possibile usare questi altri tipi per modificare ulteriormente un file. Per altre informazioni, vedere membri specifici di File, ad esempio OpenText, CreateTexto Create.

Poiché tutti i metodi File sono statici, se si vuole eseguire una sola azione, potrebbe essere più efficiente usare un metodo File rispetto a un metodo di istanza di FileInfo corrispondente. Tutti i metodi File richiedono il percorso del file che si sta modificando.

I metodi statici della classe File eseguono controlli di sicurezza su tutti i metodi. Se si intende riutilizzare un oggetto più volte, è consigliabile usare il metodo di istanza corrispondente di FileInfo, perché il controllo di sicurezza non sarà sempre necessario.

Per impostazione predefinita, l'accesso completo in lettura/scrittura ai nuovi file viene concesso a tutti gli utenti.

Nella tabella seguente vengono descritte le enumerazioni utilizzate per personalizzare il comportamento di vari metodi di File.

Enumerazione Descrizione
FileAccess Specifica l'accesso in lettura e scrittura a un file.
FileShare Specifica il livello di accesso consentito per un file già in uso.
FileMode Specifica se il contenuto di un file esistente viene mantenuto o sovrascritto e se le richieste di creazione di un file esistente causano un'eccezione.

Nota

Nei membri che accettano un percorso come stringa di input, tale percorso deve essere ben formato o viene generata un'eccezione. Ad esempio, se un percorso è completo ma inizia con uno spazio, il percorso non viene tagliato nei metodi della classe . Di conseguenza, il percorso non è valido e viene generata un'eccezione. Analogamente, un percorso o una combinazione di percorsi non può essere completo due volte. Ad esempio, "c:\temp c:\windows" genera anche un'eccezione nella maggior parte dei casi. Assicurarsi che i percorsi siano ben formati quando si usano metodi che accettano una stringa di percorso.

Nei membri che accettano un percorso, il percorso può fare riferimento a un file o solo a una directory. Il percorso specificato può anche fare riferimento a un percorso relativo o a un percorso UNC (Universal Naming Convention) per un server e un nome di condivisione. Ad esempio, tutti i percorsi seguenti sono accettabili:

  • "c:\\\MyDir\\\MyFile.txt" in C# o "c:\MyDir\MyFile.txt" in Visual Basic.
  • "c:\\\MyDir" in C# o "c:\MyDir" in Visual Basic.
  • "MyDir\\\MySubdir" in C# o "MyDir\MySubDir" in Visual Basic.
  • "\\\\\\\MyServer\\\MyShare" in C# o "\\\MyServer\MyShare" in Visual Basic.

Per un elenco delle attività di I/O comuni, vedere Attività di I/O comuni.

Metodi

AppendAllBytes(String, Byte[])

Aggiunge la matrice di byte specificata alla fine del file nel percorso specificato.

Se il file non esiste, questo metodo crea un nuovo file.

AppendAllBytes(String, ReadOnlySpan<Byte>)

Aggiunge la matrice di byte specificata alla fine del file nel percorso specificato.

Se il file non esiste, questo metodo crea un nuovo file.

AppendAllBytesAsync(String, Byte[], CancellationToken)

Aggiunge in modo asincrono la matrice di byte specificata alla fine del file nel percorso specificato.

Se il file non esiste, questo metodo crea un nuovo file. Se l'operazione viene annullata, l'attività restituirà uno stato annullato.

AppendAllBytesAsync(String, ReadOnlyMemory<Byte>, CancellationToken)

Aggiunge in modo asincrono la matrice di byte specificata alla fine del file nel percorso specificato.

Se il file non esiste, questo metodo crea un nuovo file. Se l'operazione viene annullata, l'attività restituirà uno stato annullato.

AppendAllLines(String, IEnumerable<String>)

Aggiunge righe a un file e quindi chiude il file. Se il file specificato non esiste, questo metodo crea un file, scrive le righe specificate nel file e quindi chiude il file.

AppendAllLines(String, IEnumerable<String>, Encoding)

Aggiunge righe a un file utilizzando una codifica specificata e quindi chiude il file. Se il file specificato non esiste, questo metodo crea un file, scrive le righe specificate nel file e quindi chiude il file.

AppendAllLinesAsync(String, IEnumerable<String>, CancellationToken)

Aggiunge in modo asincrono righe a un file e quindi chiude il file. Se il file specificato non esiste, questo metodo crea un file, scrive le righe specificate nel file e quindi chiude il file.

AppendAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

Aggiunge in modo asincrono righe a un file usando una codifica specificata e quindi chiude il file. Se il file specificato non esiste, questo metodo crea un file, scrive le righe specificate nel file e quindi chiude il file.

AppendAllText(String, ReadOnlySpan<Char>)

Aggiunge la stringa specificata al file, creando il file, se non esiste già.

AppendAllText(String, ReadOnlySpan<Char>, Encoding)

Aggiunge la stringa specificata al file, creando il file, se non esiste già.

AppendAllText(String, String)

Apre un file, aggiunge la stringa specificata al file e quindi chiude il file. Se il file non esiste, questo metodo crea un file, scrive la stringa specificata nel file, quindi chiude il file.

AppendAllText(String, String, Encoding)

Aggiunge la stringa specificata al file usando la codifica specificata, creando il file se non esiste già.

AppendAllTextAsync(String, ReadOnlyMemory<Char>, CancellationToken)

Apre in modo asincrono un file o crea un file, se non esiste già, aggiunge la stringa specificata al file e quindi chiude il file.

AppendAllTextAsync(String, ReadOnlyMemory<Char>, Encoding, CancellationToken)

Apre in modo asincrono un file o crea il file, se non esiste già, aggiunge la stringa specificata al file usando la codifica specificata e quindi chiude il file.

AppendAllTextAsync(String, String, CancellationToken)

Apre in modo asincrono un file o crea un file, se non esiste già, aggiunge la stringa specificata al file e quindi chiude il file.

AppendAllTextAsync(String, String, Encoding, CancellationToken)

Apre in modo asincrono un file o crea il file, se non esiste già, aggiunge la stringa specificata al file usando la codifica specificata e quindi chiude il file.

AppendText(String)

Crea un StreamWriter che accoda testo codificato UTF-8 a un file esistente o a un nuovo file se il file specificato non esiste.

Copy(String, String)

Copia un file esistente in un nuovo file. La sovrascrittura di un file con lo stesso nome non è consentita.

Copy(String, String, Boolean)

Copia un file esistente in un nuovo file. È consentita la sovrascrittura di un file con lo stesso nome.

Create(String)

Crea o tronca e sovrascrive un file nel percorso specificato.

Create(String, Int32)

Crea o tronca e sovrascrive un file nel percorso specificato, specificando una dimensione del buffer.

Create(String, Int32, FileOptions)

Crea o sovrascrive un file nel percorso specificato, specificando una dimensione del buffer e opzioni che descrivono come creare o sovrascrivere il file.

Create(String, Int32, FileOptions, FileSecurity)

Crea o sovrascrive un file nel percorso specificato, specificando una dimensione del buffer, opzioni che descrivono come creare o sovrascrivere il file e un valore che determina il controllo di accesso e controlla la sicurezza per il file.

CreateSymbolicLink(String, String)

Crea un collegamento simbolico di file identificato da path che punta a pathToTarget.

CreateText(String)

Crea o apre un file per la scrittura di testo con codifica UTF-8. Se il file esiste già, il relativo contenuto viene sostituito.

Decrypt(String)

Decrittografa un file crittografato dall'account corrente usando il metodo Encrypt(String).

Delete(String)

Elimina il file specificato.

Encrypt(String)

Crittografa un file in modo che solo l'account usato per crittografare il file possa decrittografarlo.

Exists(String)

Determina se il file specificato esiste.

GetAccessControl(String)

Ottiene un oggetto FileSecurity che incapsula le voci dell'elenco di controllo di accesso (ACL) per un file specificato.

GetAccessControl(String, AccessControlSections)

Ottiene un oggetto FileSecurity che incapsula il tipo specificato di voci dell'elenco di controllo di accesso (ACL) per un determinato file.

GetAttributes(SafeFileHandle)

Ottiene il FileAttributes specificato del file o della directory associata a fileHandle.

GetAttributes(String)

Ottiene la FileAttributes del file nel percorso.

GetCreationTime(SafeFileHandle)

Restituisce l'ora di creazione del file o della directory specificata.

GetCreationTime(String)

Restituisce la data e l'ora di creazione del file o della directory specificata.

GetCreationTimeUtc(SafeFileHandle)

Restituisce la data e l'ora di creazione, in utc (Coordinated Universal Time) del file o della directory specificata.

GetCreationTimeUtc(String)

Restituisce la data e l'ora di creazione, in utc (Coordinated Universal Time) del file o della directory specificata.

GetLastAccessTime(SafeFileHandle)

Restituisce la data e l'ora dell'ultimo accesso del file o della directory specificata.

GetLastAccessTime(String)

Restituisce la data e l'ora dell'ultimo accesso al file o alla directory specificata.

GetLastAccessTimeUtc(SafeFileHandle)

Restituisce la data e l'ora dell'ultimo accesso, in UTC (Coordinated Universal Time) del file o della directory specificata.

GetLastAccessTimeUtc(String)

Restituisce la data e l'ora, nell'ora UTC (Coordinated Universal Time), a cui è stato eseguito l'ultimo accesso al file o alla directory specificata.

GetLastWriteTime(SafeFileHandle)

Restituisce la data e l'ora dell'ultima scrittura del file o della directory specificata.

GetLastWriteTime(String)

Restituisce la data e l'ora dell'ultima scrittura del file o della directory specificata.

GetLastWriteTimeUtc(SafeFileHandle)

Restituisce la data e l'ora dell'ultima scrittura, in UTC (Coordinated Universal Time) del file o della directory specificata.

GetLastWriteTimeUtc(String)

Restituisce la data e l'ora, in utc (Coordinated Universal Time), in cui è stato scritto il file o la directory specificata.

GetUnixFileMode(SafeFileHandle)

Ottiene la UnixFileMode dell'handle di file specificato.

GetUnixFileMode(String)

Ottiene la UnixFileMode del file nel percorso.

Move(String, String)

Sposta un file specificato in un nuovo percorso, fornendo l'opzione per specificare un nuovo nome file.

Move(String, String, Boolean)

Sposta un file specificato in un nuovo percorso, fornendo le opzioni per specificare un nuovo nome file e sostituire il file di destinazione, se già esistente.

Open(String, FileMode)

Apre un FileStream nel percorso specificato con accesso in lettura/scrittura senza condivisione.

Open(String, FileMode, FileAccess)

Apre un FileStream nel percorso specificato, con la modalità specificata e l'accesso senza condivisione.

Open(String, FileMode, FileAccess, FileShare)

Apre un FileStream nel percorso specificato, con la modalità specificata con accesso in lettura, scrittura o lettura/scrittura e l'opzione di condivisione specificata.

Open(String, FileStreamOptions)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione, l'accesso ad altri fileStream può avere sullo stesso file, le dimensioni del buffer, le opzioni aggiuntive per i file e le dimensioni di allocazione.

OpenHandle(String, FileMode, FileAccess, FileShare, FileOptions, Int64)

Inizializza una nuova istanza della classe SafeFileHandle con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione, l'accesso ad altri SafeFileHandles può avere sullo stesso file, opzioni di file aggiuntive e dimensioni di allocazione.

OpenRead(String)

Apre un file esistente per la lettura.

OpenText(String)

Apre un file di testo con codifica UTF-8 esistente per la lettura.

OpenWrite(String)

Apre un file esistente o crea un nuovo file per la scrittura.

ReadAllBytes(String)

Apre un file binario, legge il contenuto del file in una matrice di byte e quindi chiude il file.

ReadAllBytesAsync(String, CancellationToken)

Apre in modo asincrono un file binario, legge il contenuto del file in una matrice di byte e quindi chiude il file.

ReadAllLines(String)

Apre un file di testo, legge tutte le righe del file e quindi chiude il file.

ReadAllLines(String, Encoding)

Apre un file, legge tutte le righe del file con la codifica specificata e quindi chiude il file.

ReadAllLinesAsync(String, CancellationToken)

Apre in modo asincrono un file di testo, legge tutte le righe del file e quindi chiude il file.

ReadAllLinesAsync(String, Encoding, CancellationToken)

Apre in modo asincrono un file di testo, legge tutte le righe del file con la codifica specificata e quindi chiude il file.

ReadAllText(String)

Apre un file di testo, legge tutto il testo nel file e quindi chiude il file.

ReadAllText(String, Encoding)

Apre un file, legge tutto il testo nel file con la codifica specificata e quindi chiude il file.

ReadAllTextAsync(String, CancellationToken)

Apre in modo asincrono un file di testo, legge tutto il testo nel file e quindi chiude il file.

ReadAllTextAsync(String, Encoding, CancellationToken)

Apre in modo asincrono un file di testo, legge tutto il testo nel file con la codifica specificata e quindi chiude il file.

ReadLines(String)

Legge le righe di un file.

ReadLines(String, Encoding)

Leggere le righe di un file con una codifica specificata.

ReadLinesAsync(String, CancellationToken)

Legge in modo asincrono le righe di un file.

ReadLinesAsync(String, Encoding, CancellationToken)

Legge in modo asincrono le righe di un file con una codifica specificata.

Replace(String, String, String)

Sostituisce il contenuto di un file specificato con il contenuto di un altro file, eliminando il file originale e creando un backup del file sostituito.

Replace(String, String, String, Boolean)

Sostituisce il contenuto di un file specificato con il contenuto di un altro file, eliminando il file originale e creando un backup del file sostituito e, facoltativamente, ignora gli errori di unione.

ResolveLinkTarget(String, Boolean)

Ottiene la destinazione del collegamento al file specificato.

SetAccessControl(String, FileSecurity)

Applica le voci dell'elenco di controllo di accesso (ACL) descritte da un oggetto FileSecurity al file specificato.

SetAttributes(SafeFileHandle, FileAttributes)

Imposta la FileAttributes specificata del file o della directory associata a fileHandle.

SetAttributes(String, FileAttributes)

Imposta il FileAttributes specificato del file nel percorso specificato.

SetCreationTime(SafeFileHandle, DateTime)

Imposta la data e l'ora di creazione del file o della directory.

SetCreationTime(String, DateTime)

Imposta la data e l'ora di creazione del file.

SetCreationTimeUtc(SafeFileHandle, DateTime)

Imposta la data e l'ora in Coordinated Universal Time (UTC) creata dal file o dalla directory.

SetCreationTimeUtc(String, DateTime)

Imposta la data e l'ora, in Utc (Coordinated Universal Time), che il file è stato creato.

SetLastAccessTime(SafeFileHandle, DateTime)

Imposta la data e l'ora dell'ultimo accesso al file o alla directory specificata.

SetLastAccessTime(String, DateTime)

Imposta la data e l'ora dell'ultimo accesso al file specificato.

SetLastAccessTimeUtc(SafeFileHandle, DateTime)

Imposta la data e l'ora, nell'ora UTC (Coordinated Universal Time), a cui è stato eseguito l'ultimo accesso al file o alla directory specificata.

SetLastAccessTimeUtc(String, DateTime)

Imposta la data e l'ora, nell'ora UTC (Coordinated Universal Time), a cui è stato eseguito l'ultimo accesso al file specificato.

SetLastWriteTime(SafeFileHandle, DateTime)

Imposta la data e l'ora dell'ultima scrittura del file o della directory specificata.

SetLastWriteTime(String, DateTime)

Imposta la data e l'ora dell'ultima scrittura del file specificato.

SetLastWriteTimeUtc(SafeFileHandle, DateTime)

Imposta la data e l'ora in Coordinated Universal Time (UTC) in cui è stato scritto il file o la directory specificata.

SetLastWriteTimeUtc(String, DateTime)

Imposta la data e l'ora, nell'ora UTC (Coordinated Universal Time), in cui è stato scritto l'ultimo file specificato.

SetUnixFileMode(SafeFileHandle, UnixFileMode)

Imposta il UnixFileMode specificato dell'handle di file specificato.

SetUnixFileMode(String, UnixFileMode)

Imposta il UnixFileMode specificato del file nel percorso specificato.

WriteAllBytes(String, Byte[])

Crea un nuovo file, scrive la matrice di byte specificata nel file e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllBytes(String, ReadOnlySpan<Byte>)

Crea un nuovo file, scrive la matrice di byte specificata nel file e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllBytesAsync(String, Byte[], CancellationToken)

Crea in modo asincrono un nuovo file, scrive la matrice di byte specificata nel file e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllBytesAsync(String, ReadOnlyMemory<Byte>, CancellationToken)

Crea in modo asincrono un nuovo file, scrive la matrice di byte specificata nel file e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllLines(String, IEnumerable<String>)

Crea un nuovo file, scrive una raccolta di stringhe nel file e quindi chiude il file.

WriteAllLines(String, IEnumerable<String>, Encoding)

Crea un nuovo file usando la codifica specificata, scrive una raccolta di stringhe nel file e quindi chiude il file.

WriteAllLines(String, String[])

Crea un nuovo file, scrive la matrice di stringhe specificata nel file e quindi chiude il file.

WriteAllLines(String, String[], Encoding)

Crea un nuovo file, scrive la matrice di stringhe specificata nel file usando la codifica specificata e quindi chiude il file.

WriteAllLinesAsync(String, IEnumerable<String>, CancellationToken)

Crea in modo asincrono un nuovo file, scrive le righe specificate nel file e quindi chiude il file.

WriteAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

Crea in modo asincrono un nuovo file, scrive le righe specificate nel file usando la codifica specificata e quindi chiude il file.

WriteAllText(String, ReadOnlySpan<Char>)

Crea un nuovo file, scrive la stringa specificata nel file e quindi chiude il file.

Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllText(String, ReadOnlySpan<Char>, Encoding)

Crea un nuovo file, scrive la stringa specificata nel file usando la codifica specificata e quindi chiude il file.

Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllText(String, String)

Crea un nuovo file, scrive la stringa specificata nel file e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllText(String, String, Encoding)

Crea un nuovo file, scrive la stringa specificata nel file usando la codifica specificata e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllTextAsync(String, ReadOnlyMemory<Char>, CancellationToken)

Crea in modo asincrono un nuovo file, scrive la stringa specificata nel file e quindi chiude il file.

Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllTextAsync(String, ReadOnlyMemory<Char>, Encoding, CancellationToken)

Crea in modo asincrono un nuovo file, scrive la stringa specificata nel file usando la codifica specificata e quindi chiude il file.

Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllTextAsync(String, String, CancellationToken)

Crea in modo asincrono un nuovo file, scrive la stringa specificata nel file e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

WriteAllTextAsync(String, String, Encoding, CancellationToken)

Crea in modo asincrono un nuovo file, scrive la stringa specificata nel file usando la codifica specificata e quindi chiude il file. Se il file di destinazione esiste già, viene troncato e sovrascritto.

Si applica a

Vedi anche