Freigeben über


DirectoryInfo Klasse

Definition

Macht Instanzmethoden zum Erstellen, Verschieben und Auflisten in Verzeichnissen und Unterverzeichnissen verfügbar. Diese Klasse kann nicht vererbt werden.

public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
Vererbung
DirectoryInfo
Vererbung
Attribute

Beispiele

Im folgenden Beispiel werden einige der Standard Member der DirectoryInfo -Klasse veranschaulicht.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew DirectoryInfo( "c:\\MyDir" );
   try
   {
      
      // Determine whether the directory exists.
      if ( di->Exists )
      {
         
         // Indicate that the directory already exists.
         Console::WriteLine( "That path exists already." );
         return 0;
      }
      
      // Try to create the directory.
      di->Create();
      Console::WriteLine( "The directory was created successfully." );
      
      // Delete the directory.
      di->Delete();
      Console::WriteLine( "The directory was deleted successfully." );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
        try
        {
            // Determine whether the directory exists.
            if (di.Exists)
            {
                // Indicate that the directory already exists.
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {}
    }
}
open System.IO

// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
    // Determine whether the directory exists.
    if di.Exists then
        // Indicate that the directory already exists.
        printfn "That path exists already."
    else
        // Try to create the directory.
        di.Create()
        printfn "The directory was created successfully."

        // Delete the directory.
        di.Delete()
        printfn "The directory was deleted successfully."
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

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

Im folgenden Beispiel wird veranschaulicht, wie ein Verzeichnis und dessen Inhalt kopiert werden.

using System;
using System.IO;

class CopyDir
{
    public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {
        if (source.FullName.ToLower() == target.FullName.ToLower())
        {
            return;
        }

        // Check if the target directory exists, if not, create it.
        if (Directory.Exists(target.FullName) == false)
        {
            Directory.CreateDirectory(target.FullName);
        }

        // Copy each file into it's new directory.
        foreach (FileInfo fi in source.GetFiles())
        {
            Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
        }

        // Copy each subdirectory using recursion.
        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
        {
            DirectoryInfo nextTargetSubDir =
                target.CreateSubdirectory(diSourceSubDir.Name);
            CopyAll(diSourceSubDir, nextTargetSubDir);
        }
    }

    public static void Main()
    {
        string sourceDirectory = @"c:\sourceDirectory";
        string targetDirectory = @"c:\targetDirectory";

        DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
        DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);

        CopyAll(diSource, diTarget);
    }

    // Output will vary based on the contents of the source directory.
}
open System.IO

let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
    if source.FullName.ToLower() <> target.FullName.ToLower() then
        // Check if the target directory exists, if not, create it.
        if not (Directory.Exists target.FullName) then
            Directory.CreateDirectory target.FullName |> ignore

        // Copy each file into it's new directory.
        for fi in source.GetFiles() do
            printfn $@"Copying {target.FullName}\{fi.Name}"
            fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore

        // Copy each subdirectory using recursion.
        for diSourceSubDir in source.GetDirectories() do
            target.CreateSubdirectory diSourceSubDir.Name
            |> copyAll diSourceSubDir

let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"

let diSource = DirectoryInfo sourceDirectory
let diTarget = DirectoryInfo targetDirectory

copyAll diSource diTarget

// Output will vary based on the contents of the source directory.
Imports System.IO

Class CopyDir
    Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
        If (source.FullName.ToLower() = target.FullName.ToLower()) Then
            Return
        End If

        ' Check if the target directory exists, if not, create it.
        If Directory.Exists(target.FullName) = False Then
            Directory.CreateDirectory(target.FullName)
        End If

        ' Copy each file into it's new directory.
        For Each fi As FileInfo In source.GetFiles()
            Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
        Next

        ' Copy each subdirectory using recursion.
        For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
            Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
            CopyAll(diSourceSubDir, nextTargetSubDir)
        Next
    End Sub

    Shared Sub Main()
        Dim sourceDirectory As String = "c:\\sourceDirectory"
        Dim targetDirectory As String = "c:\\targetDirectory"

        Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
        Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)

        CopyAll(diSource, diTarget)
    End Sub
    ' Output will vary based on the contents of the source directory.
End Class

Hinweise

Verwenden Sie die DirectoryInfo -Klasse für typische Vorgänge wie Kopieren, Verschieben, Umbenennen, Erstellen und Löschen von Verzeichnissen.

Wenn Sie ein Objekt mehrmals wiederverwenden möchten, sollten Sie die instance-Methode von DirectoryInfo anstelle der entsprechenden statischen Methoden der Directory -Klasse verwenden, da eine Sicherheitsüberprüfung nicht immer erforderlich ist.

Hinweis

In Membern, die einen Pfad als Eingabezeichenfolge akzeptieren, muss dieser Pfad wohlgeformt sein, oder es wird eine Ausnahme ausgelöst. Wenn z. B. ein Pfad 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.

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

Eine Liste allgemeiner E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

Konstruktoren

DirectoryInfo(String)

Initialisiert eine neue Instanz der DirectoryInfo-Klasse im angegebenen Pfad.

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)
Exists

Ruft einen Wert ab, der angibt, ob das Verzeichnis 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 ab.

FullName

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

(Geerbt von FileSystemInfo)
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)
LinkTarget

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

(Geerbt von FileSystemInfo)
Name

Ruft den Namen dieser DirectoryInfo-Instanz ab.

Parent

Ruft das übergeordnete Verzeichnis eines angegebenen Unterverzeichnisses ab.

Root

Ruft den Stammteil des Verzeichnisses ab.

UnixFileMode

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

(Geerbt von FileSystemInfo)

Methoden

Create()

Erstellt ein Verzeichnis.

Create(DirectorySecurity)

Erstellt mithilfe eines DirectorySecurity-Objekts ein Verzeichnis.

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)
CreateSubdirectory(String)

Erstellt ein oder mehrere Unterverzeichnisse im angegebenen Pfad. Der angegebene Pfad kann zu dieser Instanz der DirectoryInfo-Klasse relativ sein.

CreateSubdirectory(String, DirectorySecurity)

Erstellt ein oder mehrere Unterverzeichnisse im angegebenen Pfad mit der angegebenen Sicherheit. Der angegebene Pfad kann zu dieser Instanz der DirectoryInfo-Klasse relativ sein.

Delete()

Löscht diese DirectoryInfo, wenn diese leer sind.

Delete(Boolean)

Löscht diese Instanz von DirectoryInfo und gibt an, ob Unterverzeichnisse und Dateien gelöscht werden sollen.

EnumerateDirectories()

Gibt eine aufzählbare Auflistung von Verzeichnisinformationen im aktuellen Verzeichnis zurück.

EnumerateDirectories(String)

Gibt eine aufzählbare Auflistung von Verzeichnisinformationen zurück, die einem angegebenen Suchmuster entsprechen.

EnumerateDirectories(String, EnumerationOptions)

Gibt eine aufzählbare Sammlung von Verzeichnisinformationen zurück, die dem angegebenen Suchmuster und der angegebenen Option entspricht

EnumerateDirectories(String, SearchOption)

Gibt eine aufzählbare Auflistung von Verzeichnisinformationen zurück, die einem angegebenen Suchmuster und einer angegebenen Option zum Durchsuchen von Unterverzeichnissen entspricht.

EnumerateFiles()

Gibt eine aufzählbare Auflistung von Dateiinformationen im aktuellen Verzeichnis zurück.

EnumerateFiles(String)

Gibt eine aufzählbare Auflistung von Dateiinformationen zurück, die einem Suchmuster entsprechen.

EnumerateFiles(String, EnumerationOptions)

Gibt eine aufzählbare Sammlung von Dateiinformationen zurück, die dem angegebenen Suchmuster und der angegebenen Enumerationsoptionen entspricht

EnumerateFiles(String, SearchOption)

Gibt eine aufzählbare Auflistung von Dateiinformationen zurück, die einem angegebenen Suchmuster und einer angegebenen Option zum Durchsuchen von Unterverzeichnissen entspricht.

EnumerateFileSystemInfos()

Gibt eine aufzählbare Auflistung von Systeminformationen im aktuellen Verzeichnis zurück.

EnumerateFileSystemInfos(String)

Gibt eine aufzählbare Auflistung von Dateisysteminformationen zurück, die einem angegebenen Suchmuster entsprechen.

EnumerateFileSystemInfos(String, EnumerationOptions)

Gibt eine aufzählbare Sammlung von Dateisysteminformationen zurück, die dem angegebenen Suchmuster und der angegebenen Enumerationsoptionen entspricht

EnumerateFileSystemInfos(String, SearchOption)

Gibt eine aufzählbare Auflistung von Dateisysteminformationen zurück, die einem angegebenen Suchmuster und einer angegebenen Option zum Durchsuchen von Unterverzeichnissen entspricht.

Equals(Object)

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

(Geerbt von Object)
GetAccessControl()

Ruft ein DirectorySecurity-Objekt ab, das die Einträge in der Zugriffssteuerungsliste für das Verzeichnis kapselt, das vom aktuellen DirectoryInfo-Objekt beschrieben wird.

GetAccessControl(AccessControlSections)

Ruft ein DirectorySecurity-Objekt ab, das den angegebenen Typ der Einträge in der Zugriffssteuerungsliste für das Verzeichnis kapselt, das vom aktuellen DirectoryInfo-Objekt beschrieben wird.

GetDirectories()

Gibt die Unterverzeichnisse des aktuellen Verzeichnisses zurück.

GetDirectories(String)

Gibt ein Array von Verzeichnissen im aktuellen DirectoryInfo zurück, die den angegebenen Suchkriterien entsprechen.

GetDirectories(String, EnumerationOptions)

Gibt ein Array von Verzeichnissen im aktuellen DirectoryInfo zurück, das dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen entspricht.

GetDirectories(String, SearchOption)

Gibt ein Array von Verzeichnissen im aktuellen DirectoryInfo zurück, die den angegebenen Suchkriterien entsprechen. Anhand eines Werts wird bestimmt, ob in Unterverzeichnissen gesucht wird.

GetFiles()

Gibt eine Dateiliste des aktuellen Verzeichnisses zurück.

GetFiles(String)

Gibt eine Dateiliste des aktuellen Verzeichnisses zurück, das dem angegebenen Suchmuster entspricht.

GetFiles(String, EnumerationOptions)

Gibt eine Liste der Dateien im aktuellen Verzeichnis zurück, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen entsprechen.

GetFiles(String, SearchOption)

Gibt eine Dateiliste des aktuellen Verzeichnisses zurück, das dem angegebenen Suchmuster entspricht. Anhand eines Werts wird bestimmt, ob in Unterverzeichnissen gesucht wird.

GetFileSystemInfos()

Gibt ein Array von stark typisierten FileSystemInfo-Einträgen zurück, das alle Dateien und Unterverzeichnisse in einem Verzeichnis darstellt.

GetFileSystemInfos(String)

Ruft ein Array von stark typisierten FileSystemInfo-Objekten ab, das die Dateien und Unterverzeichnisse darstellt, die den angegebenen Suchkriterien entsprechen.

GetFileSystemInfos(String, EnumerationOptions)

Ruft ein Array von stark typisierten FileSystemInfo-Objekten ab, das die Dateien und Unterverzeichnisse darstellt, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen entsprechen.

GetFileSystemInfos(String, SearchOption)

Ruft ein Array von FileSystemInfo-Objekten ab, die die Dateien und Unterverzeichnisse darstellen, die den angegebenen Suchkriterien entsprechen.

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)
Veraltet.

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 DirectoryInfo-Instanz und deren Inhalt in einen neuen Pfad.

Refresh()

Aktualisiert den Zustand des Objekts.

(Geerbt von FileSystemInfo)
ResolveLinkTarget(Boolean)

Ruft das Ziel des angegebenen Links ab.

(Geerbt von FileSystemInfo)
SetAccessControl(DirectorySecurity)

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

ToString()

Gibt den ursprünglichen Pfad zurück, der an den Konstruktor DirectoryInfo übergeben wurde. Verwenden Sie die Eigenschaft FullName bzw. Name für den vollständigen Pfad bzw. den Datei- und Verzeichnisnamen anstatt dieser Methode.

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(DirectoryInfo, DirectorySecurity)

Erstellt ein neues Verzeichnis, wobei sichergestellt wird, dass es mit der angegebenen Verzeichnissicherheit erstellt wird. Wenn das Verzeichnis bereits vorhanden ist, wird nichts unternommen.

GetAccessControl(DirectoryInfo)

Gibt die Sicherheitsinformationen eines Verzeichnisses zurück.

GetAccessControl(DirectoryInfo, AccessControlSections)

Gibt die Sicherheitsinformationen eines Verzeichnisses zurück.

SetAccessControl(DirectoryInfo, DirectorySecurity)

Ändert die Sicherheitsattribute eines vorhandenen Verzeichnisses.

Gilt für:

Weitere Informationen