FileInfo Classe

Definizione

Fornisce proprietà e metodi dell'istanza per la creazione, la copia, lo spostamento e l'apertura di file e facilita la creazione di oggetti FileStream. La classe non può essere ereditata.

public ref class FileInfo sealed : System::IO::FileSystemInfo
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
type FileInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileInfo = class
    inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
Ereditarietà
Ereditarietà
Attributi

Esempio

Nell'esempio seguente vengono illustrati alcuni dei membri principali della FileInfo classe .

Quando le proprietà vengono recuperate per la prima volta, FileInfo chiama il metodo e memorizza nella Refresh cache le informazioni sul file. Nelle chiamate successive è necessario chiamare Refresh per ottenere la copia più recente delle informazioni.

using namespace System;
using namespace System::IO;

int main()
{
   String^ path = Path::GetTempFileName();
   FileInfo^ fi1 = gcnew FileInfo( path );
   //Create a file to write to.
   StreamWriter^ sw = fi1->CreateText();
   try
   {
     sw->WriteLine( "Hello" );
     sw->WriteLine( "And" );
     sw->WriteLine( "Welcome" );
   }
   finally
   {
     if ( sw )
        delete (IDisposable^)sw;
   }

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

   try
   {
      String^ path2 = Path::GetTempFileName();
      FileInfo^ fi2 = gcnew FileInfo( path2 );

      //Ensure that the target does not exist.
      fi2->Delete();

      //Copy the file.
      fi1->CopyTo( path2 );
      Console::WriteLine( "{0} was copied to {1}.", path, path2 );

      //Delete the newly created file.
      fi2->Delete();
      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 = Path.GetTempFileName();
        var fi1 = new FileInfo(path);

        // Create a file to write to.
        using (StreamWriter sw = fi1.CreateText())
        {
            sw.WriteLine("Hello");
            sw.WriteLine("And");
            sw.WriteLine("Welcome");
        }	

        // Open the file to read from.
        using (StreamReader sr = fi1.OpenText())
        {
            var s = "";
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }

        try
        {
            string path2 = Path.GetTempFileName();
            var fi2 = new FileInfo(path2);

            // Ensure that the target does not exist.
            fi2.Delete();

            // Copy the file.
            fi1.CopyTo(path2);
            Console.WriteLine($"{path} was copied to {path2}.");

            // Delete the newly created file.
            fi2.Delete();
            Console.WriteLine($"{path2} was successfully deleted.");
        }
        catch (Exception e)
        {
            Console.WriteLine($"The process failed: {e.ToString()}");
        }
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path1 As String = Path.GetTempFileName()
        Dim path2 As String = Path.GetTempFileName()
        Dim fi As New FileInfo(path1)

        ' Create a file to write to.
        Using sw As StreamWriter = fi.CreateText()
            sw.WriteLine("Hello")
            sw.WriteLine("And")
            sw.WriteLine("Welcome")
        End Using

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

            Dim fi2 As New FileInfo(path2)

            ' Ensure that the target does not exist.
            fi2.Delete()

            ' Copy the file.
            fi.CopyTo(path2)
            Console.WriteLine($"{path1} was copied to {path2}.")

            ' Delete the newly created file.
            fi2.Delete()
            Console.WriteLine($"{path2} was successfully deleted.")

        Catch e As Exception
            Console.WriteLine($"The process failed: {e.ToString()}.")
        End Try
    End Sub
End Class

In questo esempio viene generato un output simile al seguente.

Hello
And
Welcome
C:\Users\userName\AppData\Local\Temp\tmp70AB.tmp was copied to C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp.
C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp was successfully deleted.

Commenti

Usare la FileInfo classe per operazioni tipiche, ad esempio la copia, lo spostamento, la ridenominazione, la creazione, l'apertura, l'eliminazione e l'aggiunta ai file.

Se si eseguono più operazioni sullo stesso file, può essere più efficiente usare FileInfo i metodi di istanza anziché i metodi statici corrispondenti della File classe, perché un controllo di sicurezza non sarà sempre necessario.

Molti dei FileInfo metodi 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 FileInfo , ad Openesempio , OpenRead, OpenText, CreateTexto Create.

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

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

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 . Pertanto, il percorso è in formato non valido e viene generata un'eccezione. Analogamente, un percorso o una combinazione di percorsi non può essere completo due volte. Ad esempio, anche "c:\temp c:\windows" genera 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.

La FileInfo classe fornisce le proprietà seguenti che consentono di recuperare informazioni su un file. Per un esempio di come usare ogni proprietà, vedere le pagine delle proprietà.

  • La Directory proprietà recupera un oggetto che rappresenta la directory padre di un file.

  • La DirectoryName proprietà recupera il percorso completo della directory padre di un file.

  • La Exists proprietà verifica la presenza di un file prima di operare su di esso.

  • La IsReadOnly proprietà recupera o imposta un valore che specifica se è possibile modificare un file.

  • Recupera Length le dimensioni di un file.

  • Recupera Name il nome di un file.

Costruttori

FileInfo(String)

Inizializza una nuova istanza della classe FileInfo, che agisce da wrapper per un percorso di file.

Campi

FullPath

Rappresenta il percorso completo del file o della directory.

(Ereditato da FileSystemInfo)
OriginalPath

Percorso, assoluto o relativo, originariamente specificato dall'utente.

(Ereditato da FileSystemInfo)

Proprietà

Attributes

Ottiene o imposta gli attributi per il file o la directory corrente.

(Ereditato da FileSystemInfo)
CreationTime

Ottiene o imposta l'ora di creazione del file o della directory corrente.

(Ereditato da FileSystemInfo)
CreationTimeUtc

Ottiene o imposta l'ora di creazione, nell'ora UTC (Coordinated Universal Time) del file o della directory corrente.

(Ereditato da FileSystemInfo)
Directory

Ottiene un'istanza della directory padre.

DirectoryName

Recupera una stringa che rappresenta il percorso completo della directory.

Exists

Ottiene un valore che indica se un file esiste.

Extension

Ottiene la parte di estensione del nome del file, incluso il punto . iniziale anche se è l'intero nome di file o una stringa vuota se non è presente alcuna estensione.

(Ereditato da FileSystemInfo)
FullName

Recupera il percorso completo del file o della directory.

(Ereditato da FileSystemInfo)
IsReadOnly

Ottiene o imposta un valore che determina se il file corrente è di sola lettura.

LastAccessTime

Recupera o imposta l'ora in cui è avvenuto l'ultimo accesso al file o alla directory corrente.

(Ereditato da FileSystemInfo)
LastAccessTimeUtc

Ottiene o imposta l'ora, nell'ora UTC (Universal Coordinated Time), dell'ultimo accesso al file o alla directory corrente.

(Ereditato da FileSystemInfo)
LastWriteTime

Recupera o imposta l'ora dell'ultima modifica del file o della directory corrente.

(Ereditato da FileSystemInfo)
LastWriteTimeUtc

Ottiene o imposta l'ora, nell'ora UTC (Universal Coordinated Time), dell'ultima scrittura al file o alla directory corrente.

(Ereditato da FileSystemInfo)
Length

Ottiene le dimensioni in byte del file corrente.

LinkTarget

Ottiene il percorso di destinazione del collegamento che si trova in FullNameo null se questa FileSystemInfo istanza non rappresenta un collegamento.

(Ereditato da FileSystemInfo)
Name

Recupera il nome del file.

UnixFileMode

Ottiene o imposta la modalità file Unix per il file o la directory corrente.

(Ereditato da FileSystemInfo)

Metodi

AppendText()

Crea un oggetto StreamWriter che aggiunge testo al file rappresentato da questa istanza di FileInfo.

CopyTo(String)

Copia un file esistente in un nuovo file, non consentendo la sovrascrittura di un file esistente.

CopyTo(String, Boolean)

Copia un file esistente in un nuovo file, consentendo la sovrascrittura di un file esistente.

Create()

Crea un file.

CreateAsSymbolicLink(String)

Crea un collegamento simbolico che si trova in FullName che punta all'oggetto specificato pathToTarget.

(Ereditato da FileSystemInfo)
CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
CreateText()

Crea un oggetto StreamWriter che scrive un nuovo file di testo.

Decrypt()

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

Delete()

Elimina un file in modo permanente.

Encrypt()

Crittografa un file in modo che possa essere decrittografato solamente dall'account che lo ha crittografato.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetAccessControl()

Ottiene un oggetto FileSecurity che incapsula le voci dell'elenco di controllo di accesso (ACL) per il file descritto dall'oggetto FileInfo corrente.

GetAccessControl(AccessControlSections)

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

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.

Imposta l'oggetto SerializationInfo con il nome del file e le informazioni aggiuntive sull'eccezione.

(Ereditato da FileSystemInfo)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
MoveTo(String)

Sposta il file specificato in un nuovo percorso, consentendo di specificare per esso un nuovo nome.

MoveTo(String, Boolean)

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

Open(FileMode)

Apre un file nella modalità specificata.

Open(FileMode, FileAccess)

Apre un file nella modalità specificata, con accesso in scrittura o lettura/scrittura.

Open(FileMode, FileAccess, FileShare)

Apre un file nella modalità specificata, con accesso in lettura, in scrittura o in lettura/scrittura e l'opzione di condivisione specificata.

Open(FileStreamOptions)

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

OpenRead()

Crea un oggetto FileStream di sola lettura.

OpenText()

Crea un oggetto StreamReader con codifica UTF8, che legge da un file di testo esistente.

OpenWrite()

Crea un oggetto FileStream di sola scrittura.

Refresh()

Aggiorna lo stato dell'oggetto.

(Ereditato da FileSystemInfo)
Replace(String, String)

Sostituisce il contenuto di un file specificato con il file descritto dall'oggetto FileInfo corrente, eliminando il file originale e creando una copia di backup del file sostituito.

Replace(String, String, Boolean)

Sostituisce il contenuto di un file specificato con il file descritto dall'oggetto FileInfo corrente, eliminando il file originale e creando una copia di backup del file sostituito. Specifica inoltre se ignorare gli errori di merge.

ResolveLinkTarget(Boolean)

Ottiene la destinazione del collegamento specificato.

(Ereditato da FileSystemInfo)
SetAccessControl(FileSecurity)

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

ToString()

Restituisce il percorso originale passato al costruttore FileInfo. Utilizzare la FullName proprietà o Name per il percorso completo o il nome del file.

ToString()

Restituisce il percorso originale. Usare le proprietà FullName o Name per il percorso completo o il nome di file/directory.

(Ereditato da FileSystemInfo)

Metodi di estensione

Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Crea un nuovo flusso di file, verificando che venga creato con le proprietà e le impostazioni di sicurezza specificate.

GetAccessControl(FileInfo)

Restituisce le informazioni di sicurezza di un file.

GetAccessControl(FileInfo, AccessControlSections)

Restituisce le informazioni di sicurezza di un file.

SetAccessControl(FileInfo, FileSecurity)

Modifica gli attributi di sicurezza di un file esistente.

Si applica a

Vedi anche