Condividi tramite


FileInfo Classe

Definizione

Fornisce proprietà e metodi di istanza per la creazione, la copia, l'eliminazione, lo spostamento e l'apertura di file e facilita la creazione di oggetti FileStream. Questa 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 classe FileInfo.

Quando le proprietà vengono recuperate per la prima volta, FileInfo chiama il metodo Refresh e memorizza nella 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 classe FileInfo 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 metodi di istanza anziché i metodi statici corrispondenti della classe File, perché non sarà sempre necessario un controllo di sicurezza.

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

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 FileInfo.

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.

La classe FileInfo 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 proprietà Directory recupera un oggetto che rappresenta la directory padre di un file.

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

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

  • La proprietà IsReadOnly recupera o imposta un valore che specifica se un file può essere modificato.

  • Il Length recupera le dimensioni di un file.

  • Il Name recupera il nome di un file.

Costruttori

FileInfo(String)

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

Campi

FullPath

Rappresenta il percorso completo della directory o del file.

(Ereditato da FileSystemInfo)
OriginalPath

Percorso originariamente specificato dall'utente, relativo o assoluto.

(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

Ottiene una stringa che rappresenta il percorso completo della directory.

Exists

Ottiene un valore che indica se esiste un file.

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

Ottiene il percorso completo della directory o del file.

(Ereditato da FileSystemInfo)
IsReadOnly

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

LastAccessTime

Ottiene o imposta l'ora dell'ultimo accesso al file o alla directory corrente.

(Ereditato da FileSystemInfo)
LastAccessTimeUtc

Ottiene o imposta l'ora, nell'ora UTC (Coordinated Universal Time), a cui è stato eseguito l'ultimo accesso al file o alla directory corrente.

(Ereditato da FileSystemInfo)
LastWriteTime

Ottiene o imposta l'ora dell'ultima scrittura del file o della directory corrente.

(Ereditato da FileSystemInfo)
LastWriteTimeUtc

Ottiene o imposta l'ora, nell'ora UTC (Coordinated Universal Time), quando il file o la directory corrente è stato scritto per l'ultima volta.

(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 istanza di FileSystemInfo non rappresenta un collegamento.

(Ereditato da FileSystemInfo)
Name

Ottiene 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 StreamWriter che accoda testo al file rappresentato da questa istanza del 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 situato in FullName che punta al pathToTargetspecificato.

(Ereditato da FileSystemInfo)
CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
CreateText()

Crea un StreamWriter che scrive un nuovo file di testo.

Decrypt()

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

Delete()

Elimina definitivamente un file.

Encrypt()

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

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 corrente.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

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

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

(Ereditato da FileSystemInfo)
GetType()

Ottiene il 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 del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
MoveTo(String)

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

MoveTo(String, Boolean)

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

Open(FileMode)

Apre un file nella modalità specificata.

Open(FileMode, FileAccess)

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

Open(FileMode, FileAccess, FileShare)

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

Open(FileStreamOptions)

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

OpenRead()

Crea un FileStreamdi sola lettura.

OpenText()

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

OpenWrite()

Crea un FileStreamdi 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 un 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 un 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 al file descritto dall'oggetto FileInfo corrente.

ToString()

Restituisce il percorso originale passato al costruttore FileInfo. Utilizzare la proprietà FullName o Name per il percorso completo o il nome 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, assicurandosi 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