FileInfo Klasse

Definition

Stellt Eigenschaften und Instanzmethoden zum Erstellen, Kopieren, Löschen, Verschieben und Öffnen von Dateien bereit und unterstützt das Erstellen von FileStream-Objekten. Diese Klasse kann nicht vererbt werden.

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
Vererbung
Vererbung
Attribute

Beispiele

Im folgenden Beispiel werden einige der hauptmember der FileInfo -Klasse veranschaulicht.

Wenn die Eigenschaften zum ersten Mal abgerufen werden, FileInfo ruft die Refresh -Methode auf und speichert Informationen zur Datei zwischen. Bei nachfolgenden Aufrufen müssen Sie aufrufen Refresh , um die neueste Kopie der Informationen zu erhalten.

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 diesem Beispiel wird eine Ausgabe ähnlich der folgenden erzeugt.

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.  

Hinweise

Verwenden Sie die FileInfo -Klasse für typische Vorgänge wie Kopieren, Verschieben, Umbenennen, Erstellen, Öffnen, Löschen und Anfügen an Dateien.

Wenn Sie mehrere Vorgänge für dieselbe Datei ausführen, kann es effizienter sein, Instanzmethoden anstelle der entsprechenden statischen Methoden der File -Klasse zu verwendenFileInfo, da nicht immer eine Sicherheitsüberprüfung erforderlich ist.

Viele der FileInfo Methoden geben andere E/A-Typen zurück, wenn Sie Dateien erstellen oder öffnen. Sie können diese anderen Typen verwenden, um eine Datei weiter zu bearbeiten. Weitere Informationen finden Sie unter bestimmte FileInfo Member wie Open, OpenRead, OpenText, CreateTextoder Create.

Standardmäßig wird allen Benutzern vollständiger Lese-/Schreibzugriff auf neue Dateien gewährt.

In der folgenden Tabelle werden die Enumerationen beschrieben, die zum Anpassen des Verhaltens verschiedener FileInfo Methoden verwendet werden.

Enumeration Beschreibung
FileAccess Gibt Lese- und Schreibzugriff auf eine Datei an.
FileShare Gibt die zulässige Zugriffsebene für eine Datei an, die bereits verwendet wird.
FileMode Gibt an, ob der Inhalt einer vorhandenen Datei beibehalten oder überschrieben wird und ob Anforderungen zum Erstellen einer vorhandenen Datei eine Ausnahme verursachen.

Hinweis

In Membern, die einen Pfad als Eingabezeichenfolge akzeptieren, muss dieser Pfad wohlgeformt sein, oder es wird eine Ausnahme ausgelöst. Wenn ein Pfad z. B. voll qualifiziert ist, aber mit einem Leerzeichen beginnt, wird der Pfad in Methoden der -Klasse nicht gekürzt. Daher ist der Pfad falsch formatiert, und es wird eine Ausnahme ausgelöst. Ebenso kann ein Pfad oder eine Kombination von Pfaden nicht zweimal vollständig qualifiziert werden. Beispielsweise löst "c:\temp c:\windows" in den meisten Fällen auch eine Ausnahme aus. Stellen Sie sicher, dass Ihre Pfade wohlgeformt sind, wenn Sie Methoden verwenden, die eine Pfadzeichenfolge akzeptieren.

In Membern, die einen Pfad akzeptieren, kann der Pfad auf eine Datei oder nur auf ein Verzeichnis verweisen. Der angegebene Pfad kann auch auf einen relativen Pfad oder einen UNC-Pfad (Universal Naming Convention) für einen Server- und Freigabenamen verweisen. Beispielsweise sind alle folgenden Pfade akzeptabel:

  • "c:\\MyDir\\MyFile.txt" in C# oder "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\MyDir" in C# oder "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" in C# oder "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" in C# oder "\\MyServer\MyShare" in Visual Basic.

Die FileInfo -Klasse stellt die folgenden Eigenschaften bereit, mit denen Sie Informationen zu einer Datei abrufen können. Ein Beispiel für die Verwendung der einzelnen Eigenschaften finden Sie auf den Eigenschaftenseiten.

  • Die Directory -Eigenschaft ruft ein -Objekt ab, das das übergeordnete Verzeichnis einer Datei darstellt.

  • Die DirectoryName -Eigenschaft ruft den vollständigen Pfad des übergeordneten Verzeichnisses einer Datei ab.

  • Die Exists -Eigenschaft überprüft, ob eine Datei vorhanden ist, bevor sie daran ausgeführt wird.

  • Die IsReadOnly -Eigenschaft ruft einen Wert ab oder legt diesen fest, der angibt, ob eine Datei geändert werden kann.

  • Ruft Length die Größe einer Datei ab.

  • Der Name ruft den Namen einer Datei ab.

Konstruktoren

FileInfo(String)

Initialisiert eine neue Instanz der FileInfo-Klasse, die als Wrapper für einen Dateipfad fungiert.

Felder

FullPath

Stellt den vollqualifizierten Pfad des Verzeichnisses oder der Datei dar.

(Geerbt von FileSystemInfo)
OriginalPath

Der ursprünglich vom Benutzer angegebene Pfad, relativ oder absolut.

(Geerbt von FileSystemInfo)

Eigenschaften

Attributes

Ruft die Attribute für die aktuelle Datei oder das aktuelle Verzeichnis ab oder legt diese fest.

(Geerbt von FileSystemInfo)
CreationTime

Ruft den Erstellungszeitpunkt der aktuellen Datei oder des aktuellen Verzeichnisses ab oder legt diesen fest.

(Geerbt von FileSystemInfo)
CreationTimeUtc

Ruft die Erstellungszeit der aktuellen Datei oder des aktuellen Verzeichnisses im UTC-Format (Coordinated Universal Time) ab oder legt diese fest.

(Geerbt von FileSystemInfo)
Directory

Ruft eine Instanz des übergeordneten Verzeichnisses ab.

DirectoryName

Ruft eine Zeichenfolge ab, die den vollständigen Pfad des Verzeichnisses darstellt.

Exists

Ruft einen Wert ab, der angibt, ob eine Datei vorhanden ist.

Extension

Ruft den Erweiterungsteil des Dateinamens ab, einschließlich des führenden Punkts . , auch wenn es sich um den gesamten Dateinamen handelt, oder eine leere Zeichenfolge, wenn keine Erweiterung vorhanden ist.

(Geerbt von FileSystemInfo)
FullName

Ruft den vollständigen Pfad des Verzeichnisses oder der Datei ab.

(Geerbt von FileSystemInfo)
IsReadOnly

Ruft einen Wert ab, der bestimmt, ob die aktuelle Datei schreibgeschützt ist, oder legt diesen Wert fest.

LastAccessTime

Ruft den Zeitpunkt des letzten Zugriffs auf die aktuelle Datei oder das aktuelle Verzeichnis ab oder legt diesen fest.

(Geerbt von FileSystemInfo)
LastAccessTimeUtc

Ruft den Zeitpunkt des letzten Zugriffs auf die aktuelle Datei bzw. das aktuelle Verzeichnis im UTC-Format (Coordinated Universal Time) ab oder legt diesen fest.

(Geerbt von FileSystemInfo)
LastWriteTime

Ruft den Zeitpunkt des letzten Schreibzugriffs auf die aktuelle Datei oder das aktuelle Verzeichnis ab oder legt diesen fest.

(Geerbt von FileSystemInfo)
LastWriteTimeUtc

Ruft den Zeitpunkt des letzten Schreibens in die aktuelle Datei oder das aktuelle Verzeichnis im UTC-Format (Coordinated Universal Time) ab oder legt diesen fest.

(Geerbt von FileSystemInfo)
Length

Ruft die Größe der aktuellen Datei in Byte ab.

LinkTarget

Ruft den Zielpfad des Links in FullNameoder null ab, wenn diese FileSystemInfo Instanz keinen Link darstellt.

(Geerbt von FileSystemInfo)
Name

Ruft den Namen der Datei ab.

UnixFileMode

Ruft den Unix-Dateimodus für die aktuelle Datei oder das aktuelle Verzeichnis ab oder legt diese fest.

(Geerbt von FileSystemInfo)

Methoden

AppendText()

Erstellt einen StreamWriter, der der Datei Text hinzufügt, die von dieser Instanz von FileInfo dargestellt wird.

CopyTo(String)

Kopiert eine vorhandene Datei in eine neue Datei, ohne das Überschreiben einer vorhandenen Datei zuzulassen.

CopyTo(String, Boolean)

Kopiert eine vorhandene Datei in eine neue Datei und lässt das Überschreiben einer vorhandenen Datei zu.

Create()

Erstellt eine Datei.

CreateAsSymbolicLink(String)

Erstellt einen symbolischen Link in FullName , der auf die angegebene pathToTargetverweist.

(Geerbt von FileSystemInfo)
CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
CreateText()

Erstellt einen StreamWriter, der eine neue Textdatei erstellt und in diese schreibt.

Decrypt()

Entschlüsselt eine Datei, die vom aktuellen Konto mit der Encrypt()-Methode verschlüsselt wurde.

Delete()

Löscht eine Datei unwiderruflich.

Encrypt()

Verschlüsselt eine Datei, sodass sie nur mit dem Konto, mit dem die Datei verschlüsselt wurde, entschlüsselt werden kann.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetAccessControl()

Ruft ein FileSecurity-Objekt ab, das die Einträge in der Zugriffssteuerungsliste für die Datei kapselt, das vom aktuellen FileInfo-Objekt beschrieben wird.

GetAccessControl(AccessControlSections)

Ruft ein FileSecurity-Objekt ab, das den angegebenen Typ der Einträge in der Zugriffssteuerungsliste für die Datei kapselt, die vom aktuellen FileInfo-Objekt beschrieben wird.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Legt das SerializationInfo-Objekt mit dem Dateinamen und zusätzlichen Informationen zur Ausnahme fest.

(Geerbt von FileSystemInfo)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
MoveTo(String)

Verschiebt eine angegebene Datei an einen neuen Speicherort und ermöglicht das Angeben eines neuen Dateinamens.

MoveTo(String, Boolean)

Verschiebt eine angegebene Datei an einen neuen Speicherort und stellt die Optionen zum Angeben eines neuen Dateinamens und zum Überschreiben der Zieldatei bereit, falls diese bereits vorhanden ist.

Open(FileMode)

Öffnet eine Datei im angegebenen Modus.

Open(FileMode, FileAccess)

Öffnet eine Datei im angegebenen Modus mit Lese-, Schreib- oder Lese-/Schreibzugriff.

Open(FileMode, FileAccess, FileShare)

Öffnet eine Datei im angegebenen Modus mit Lese-, Schreib- oder Lese-/Schreibzugriff und der angegebenen Freigabeoption.

Open(FileStreamOptions)

Initialisiert eine neue Instanz der FileStream -Klasse mit dem angegebenen Erstellungsmodus, Lese-/Schreib- und Freigabeberechtigung, dem Zugriff, den andere FileStreams auf dieselbe Datei haben können, die Puffergröße, zusätzliche Dateioptionen und die Zuordnungsgröße.

OpenRead()

Erstellt einen schreibgeschützten FileStream.

OpenText()

Erstellt einen StreamReader mit UTF8-Codierung, der aus einer vorhandenen Textdatei liest.

OpenWrite()

Erstellt einen lesegeschützten FileStream.

Refresh()

Aktualisiert den Zustand des Objekts.

(Geerbt von FileSystemInfo)
Replace(String, String)

Ersetzt den Inhalt einer angegebenen Datei durch die vom aktuellen FileInfo-Objekt beschriebene Datei, löscht die ursprüngliche Datei und erstellt eine Sicherungskopie der ersetzten Datei.

Replace(String, String, Boolean)

Ersetzt den Inhalt einer angegebenen Datei durch die vom aktuellen FileInfo-Objekt beschriebene Datei, löscht die ursprüngliche Datei und erstellt eine Sicherungskopie der ersetzten Datei. Gibt auch an, ob Mergefehler ignoriert werden sollen.

ResolveLinkTarget(Boolean)

Ruft das Ziel des angegebenen Links ab.

(Geerbt von FileSystemInfo)
SetAccessControl(FileSecurity)

Wendet von einem FileSecurity-Objekt beschriebene Einträge in Zugriffssteuerungslisten auf die Datei an, die vom aktuellen FileInfo-Objekt beschrieben wird.

ToString()

Gibt den Pfad als Zeichenfolge zurück. Verwenden Sie die Name-Eigenschaft für den vollständigen Pfad.

ToString()

Gibt den ursprünglichen Pfad zurück. Verwenden Sie die Eigenschaft FullName bzw. Name für den vollständigen Pfad bzw. den Datei- und Verzeichnisnamen.

(Geerbt von FileSystemInfo)

Erweiterungsmethoden

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

Erstellt einen neuen Datenstrom, wobei sichergestellt wird, dass er mit den angegebenen Eigenschaften und Sicherheitseinstellungen erstellt wird.

GetAccessControl(FileInfo)

Gibt die Sicherheitsinformationen einer Datei zurück.

GetAccessControl(FileInfo, AccessControlSections)

Gibt die Sicherheitsinformationen einer Datei zurück.

SetAccessControl(FileInfo, FileSecurity)

Ändert die Sicherheitsattribute einer vorhandenen Datei.

Gilt für

Siehe auch