Freigeben über


FileInfo Klasse

Definition

Stellt Eigenschaften und Instanzmethoden zum Erstellen, Kopieren, Löschen, Verschieben und Öffnen von Dateien bereit und unterstützt die Erstellung von FileStream Objekten. Diese Klasse kann nicht geerbt 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 Hauptmmer der FileInfo-Klasse veranschaulicht.

Wenn die Eigenschaften zum ersten Mal abgerufen werden, ruft FileInfo die Refresh-Methode auf und speichert Informationen zur Datei zwischen. Bei nachfolgenden Anrufen müssen Sie Refresh aufrufen, 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 die Ausgabe ähnlich wie folgt 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 in derselben Datei ausführen, kann es effizienter sein, FileInfo Instanzmethoden anstelle der entsprechenden statischen Methoden der File Klasse zu verwenden, da eine Sicherheitsüberprüfung nicht immer 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 bestimmten FileInfo Membern wie Open, OpenRead, OpenText, CreateTextoder Create.

Standardmäßig wird allen Benutzern der vollständige 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.

Aufzählung Beschreibung
FileAccess Gibt Lese- und Schreibzugriff auf eine Datei an.
FileShare Gibt die Zugriffsebene an, die für eine Datei zulässig ist, 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.

Anmerkung

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

In Mitgliedern, 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 zulässigen Pfade:

  • "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 sucht vor dem Ausführen auf das Vorhandensein einer Datei.

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

  • Die Length ruft die Größe einer Datei ab.

  • Die 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 vom Benutzer ursprünglich angegebene Pfad, unabhängig davon, ob relativ oder absolut.

(Geerbt von FileSystemInfo)

Eigenschaften

Attributes

Dient zum Abrufen oder Festlegen der Attribute für die aktuelle Datei oder das aktuelle Verzeichnis.

(Geerbt von FileSystemInfo)
CreationTime

Dient zum Abrufen oder Festlegen der Erstellungszeit der aktuellen Datei oder des aktuellen Verzeichnisses.

(Geerbt von FileSystemInfo)
CreationTimeUtc

Ruft die Erstellungszeit in koordinierter Weltzeit (UTC) der aktuellen Datei oder des aktuellen Verzeichnisses ab oder legt sie 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

Dient zum Abrufen oder Festlegen eines Werts, der bestimmt, ob die aktuelle Datei schreibgeschützt ist.

LastAccessTime

Dient zum Abrufen oder Festlegen der Uhrzeit, zu der die aktuelle Datei oder das aktuelle Verzeichnis zuletzt zugegriffen wurde.

(Geerbt von FileSystemInfo)
LastAccessTimeUtc

Ruft die Uhrzeit in koordinierter Weltzeit (UTC) ab, zu der die aktuelle Datei oder das aktuelle Verzeichnis zuletzt zugegriffen wurde, oder legt sie fest.

(Geerbt von FileSystemInfo)
LastWriteTime

Dient zum Abrufen oder Festlegen der Uhrzeit, zu der die aktuelle Datei oder das aktuelle Verzeichnis zuletzt geschrieben wurde.

(Geerbt von FileSystemInfo)
LastWriteTimeUtc

Ruft die Uhrzeit in koordinierter Weltzeit (UTC) ab, in die die aktuelle Datei oder das aktuelle Verzeichnis zuletzt geschrieben wurde, oder legt sie fest.

(Geerbt von FileSystemInfo)
Length

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

LinkTarget

Ruft den Zielpfad des Links in FullNameoder null ab, wenn diese FileSystemInfo Instanz keine Verknüpfung darstellt.

(Geerbt von FileSystemInfo)
Name

Ruft den Namen der Datei ab.

UnixFileMode

Dient zum Abrufen oder Festlegen des Unix-Dateimodus für die aktuelle Datei oder das aktuelle Verzeichnis.

(Geerbt von FileSystemInfo)

Methoden

AppendText()

Erstellt eine StreamWriter, die Text an die Datei angibt, die durch diese Instanz des FileInfodargestellt wird.

CopyTo(String)

Kopiert eine vorhandene Datei in eine neue Datei, wobei das Überschreiben einer vorhandenen Datei deaktiviert wird.

CopyTo(String, Boolean)

Kopiert eine vorhandene Datei in eine neue Datei, sodass eine vorhandene Datei überschrieben wird.

Create()

Erstellt eine Datei.

CreateAsSymbolicLink(String)

Erstellt eine symbolische Verknüpfung in FullName, die auf die angegebene pathToTargetverweist.

(Geerbt von FileSystemInfo)
CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
CreateText()

Erstellt eine StreamWriter, die eine neue Textdatei schreibt.

Decrypt()

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

Delete()

Löscht eine Datei endgültig.

Encrypt()

Verschlüsselt eine Datei, sodass nur das Konto, das zum Verschlüsseln der Datei verwendet wird, entschlüsseln kann.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetAccessControl()

Ruft ein FileSecurity -Objekt ab, das die Zugriffssteuerungslisteneinträge (Access Control List, ACL) für die datei kapselt, die vom aktuellen FileInfo -Objekt beschrieben wird.

GetAccessControl(AccessControlSections)

Ruft ein FileSecurity -Objekt ab, das den angegebenen Typ von Zugriffssteuerungslisteneinträgen (Access Control List, ACL) für die datei kapselt, die vom aktuellen FileInfo -Objekt beschrieben wird.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

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

(Geerbt von MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
Veraltet.

Legt das SerializationInfo -Objekt mit dem Dateinamen und zusätzliche Ausnahmeinformationen fest.

(Geerbt von FileSystemInfo)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie der 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, wobei die Option zum Angeben eines neuen Dateinamens bereitgestellt wird.

MoveTo(String, Boolean)

Verschiebt eine angegebene Datei an einen neuen Speicherort, wobei die Optionen zum Angeben eines neuen Dateinamens und zum Überschreiben der Zieldatei bereitgestellt werden, sofern sie 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 Freigabeberechtigungen, der Zugriff auf andere FileStreams kann auf dieselbe Datei, die Puffergröße, zusätzliche Dateioptionen und die Zuordnungsgröße verfügen.

OpenRead()

Erstellt eine schreibgeschützte FileStream.

OpenText()

Erstellt eine StreamReader mit UTF8-Codierung, die aus einer vorhandenen Textdatei liest.

OpenWrite()

Erstellt eine schreibgeschützte FileStream.

Refresh()

Aktualisiert den Status des Objekts.

(Geerbt von FileSystemInfo)
Replace(String, String)

Ersetzt den Inhalt einer angegebenen Datei durch die datei, die durch das aktuelle FileInfo -Objekt beschrieben wird, die ursprüngliche Datei zu löschen und eine Sicherung der ersetzten Datei zu erstellen.

Replace(String, String, Boolean)

Ersetzt den Inhalt einer angegebenen Datei durch die durch das aktuelle FileInfo -Objekt beschriebene Datei, das Löschen der Originaldatei und das Erstellen einer Sicherung der ersetzten Datei. Gibt außerdem an, ob Zusammenführungsfehler ignoriert werden sollen.

ResolveLinkTarget(Boolean)

Ruft das Ziel der angegebenen Verknüpfung ab.

(Geerbt von FileSystemInfo)
SetAccessControl(FileSecurity)

Wendet Zugriffssteuerungslisteneinträge (Access Control List, ACL) an, die durch ein FileSecurity-Objekt beschriebene Datei auf die datei angewendet werden, die vom aktuellen FileInfo-Objekt beschrieben wird.

ToString()

Gibt den ursprünglichen Pfad zurück, der an den FileInfo-Konstruktor übergeben wurde. Verwenden Sie die eigenschaft FullName oder Name für den vollständigen Pfad oder Dateinamen.

ToString()

Gibt den ursprünglichen Pfad zurück. Verwenden Sie die eigenschaften FullName oder Name für den vollständigen Pfad- oder Datei-/Verzeichnisnamen.

(Geerbt von FileSystemInfo)

Erweiterungsmethoden

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

Erstellt einen neuen Dateidatenstrom, um sicherzustellen, 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:

Weitere Informationen