Directory Klasse

Definition

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

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
Vererbung
Directory
Attribute

Beispiele

Das folgende Beispiel zeigt, wie Sie alle Textdateien aus einem Verzeichnis abrufen und in ein neues Verzeichnis verschieben. Nachdem die Dateien verschoben wurden, sind sie im ursprünglichen Verzeichnis nicht mehr vorhanden.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

Im folgenden Beispiel wird veranschaulicht, wie die EnumerateFiles -Methode verwendet wird, um eine Auflistung von Textdateien aus einem Verzeichnis abzurufen und diese Auflistung dann in einer Abfrage zu verwenden, um alle Zeilen zu finden, die "Example" enthalten.

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string archiveDirectory = @"C:\archive";

            var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(retrievedFile)
                        where line.Contains("Example")
                        select new
                        {
                            File = retrievedFile,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine("{0} contains {1}", f.File, f.Line);
            }
            Console.WriteLine("{0} lines found.", files.Count().ToString());
        }
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Module Module1

    Sub Main()
        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub

End Module

Im folgenden Beispiel wird veranschaulicht, wie Ein Verzeichnis und alle zugehörigen Dateien in ein neues Verzeichnis verschoben werden. Das ursprüngliche Verzeichnis ist nach dem Verschieben nicht mehr vorhanden.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Hinweise

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

  • Verwenden Sie eine der CreateDirectory Methoden, um ein Verzeichnis zu erstellen.

  • Verwenden Sie eine der Delete Methoden, um ein Verzeichnis zu löschen.

  • Verwenden Sie die - oder -Methode, um das GetCurrentDirectory aktuelle Verzeichnis für eine App abzurufen oder SetCurrentDirectory festzulegen.

  • Um Informationen im Zusammenhang mit der Erstellung, dem Zugriff und dem Schreiben eines Verzeichnisses zu bearbeiten DateTime , verwenden Sie Methoden wie SetLastAccessTime und SetCreationTime.

Die statischen Methoden der Directory -Klasse führen Sicherheitsüberprüfungen für alle Methoden durch. Wenn Sie ein Objekt mehrmals wiederverwenden möchten, sollten Sie stattdessen die entsprechende Instanzmethode von DirectoryInfo verwenden, da die Sicherheitsüberprüfung nicht immer erforderlich ist.

Wenn Sie nur eine verzeichnisbezogene Aktion ausführen, ist es möglicherweise effizienter, anstelle einer entsprechenden DirectoryInfo Instanzmethode eine statische Directory Methode zu verwenden. Die meisten Directory Methoden erfordern den Pfad zu dem Verzeichnis, das Sie bearbeiten.

Hinweis

In Membern, die einen Zeichenfolgenparameter path akzeptieren, muss dieser Pfad wohlgeformt sein, oder es wird eine Ausnahme ausgelöst. Wenn beispielsweise ein Pfad voll qualifiziert ist, aber mit einem Leerzeichen beginnt ("c:\temp"), wird die Pfadzeichenfolge nicht gekürzt, sodass der Pfad als falsch formatiert gilt und eine Ausnahme ausgelöst wird. Darüber hinaus kann ein Pfad oder eine Kombination von Pfaden nicht zweimal vollständig qualifiziert werden. Beispielsweise löst "c:\temp c:\windows" auch eine Ausnahme aus. Stellen Sie sicher, dass Ihre Pfade wohlgeformt sind, wenn Sie Methoden verwenden, die eine Pfadzeichenfolge akzeptieren. Weitere Informationen finden Sie unter Path.

In Membern, die einen Pfad akzeptieren, kann der Pfad auf eine Datei oder ein Verzeichnis verweisen. Sie können einen vollständigen Pfad, einen relativen Pfad oder einen UNC-Pfad (Universal Naming Convention) für einen Server- und Freigabenamen verwenden. Beispielsweise sind alle folgenden Pfade zulässig:

  • "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. Die App muss jedoch über die richtige Sicherheit verfügen, um auf vorhandene Verzeichnisse zuzugreifen.

Um Berechtigungen für ein Verzeichnis und alle seine Unterverzeichnisse zu verlangen, beenden Sie die Pfadzeichenfolge mit dem Verzeichnistrennzeichen. (Beispielsweise gewährt "C:\Temp\" Zugriff auf C:\Temp\ und alle zugehörigen Unterverzeichnisse.) Wenn Sie nur Berechtigungen für ein bestimmtes Verzeichnis verlangen möchten, beenden Sie die Pfadzeichenfolge mit einem Punkt. (Beispielsweise gewährt "C:\Temp\." nur Zugriff auf C:\Temp\, nicht auf dessen Unterverzeichnisse.)

In Membern, die einen searchPattern Parameter akzeptieren, kann die Suchzeichenfolge eine beliebige Kombination aus Literalzeichen und zwei Platzhalterzeichen sein: * und ?. Dieser Parameter erkennt keine regulären Ausdrücke. Weitere Informationen finden Sie unter der EnumerateDirectories(String, String) -Methode oder einer anderen Methode, die den searchPattern -Parameter verwendet.

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

Directory und DirectoryInfo werden für die Verwendung in Windows Store-Apps nicht unterstützt. Informationen zum Zugreifen auf Dateien und Ordner in Windows Store-Apps finden Sie unter Zugreifen auf Daten und Dateien (Windows Store-Apps).

Methoden

CreateDirectory(String)

Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad, es sei denn, sie sind bereits vorhanden.

CreateDirectory(String, DirectorySecurity)

Erstellt alle Verzeichnisse im angegebenen Pfad, sofern diese nicht bereits vorhanden sind. Dabei wird die angegebene Windows-Sicherheit angewendet.

CreateDirectory(String, UnixFileMode)

Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad mit den angegebenen Berechtigungen, sofern sie nicht bereits vorhanden sind.

CreateSymbolicLink(String, String)

Erstellt eine durch identifizierte path symbolische Verzeichnisverbindung, die auf pathToTargetverweist.

CreateTempSubdirectory(String)

Erstellt ein eindeutig benanntes, leeres Verzeichnis im temporären Verzeichnis des aktuellen Benutzers.

Delete(String)

Löscht ein leeres Verzeichnis aus einem angegebenen Pfad.

Delete(String, Boolean)

Löscht das angegebene Verzeichnis und, sofern angegeben, alle Unterverzeichnisse und Dateien im Verzeichnis.

EnumerateDirectories(String)

Gibt eine aufzählbare Sammlung von vollständigen Verzeichnisnamen in einem angegebenen Pfad zurück.

EnumerateDirectories(String, String)

Gibt eine aufzählbare Sammlung von vollständigen Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen.

EnumerateDirectories(String, String, EnumerationOptions)

Gibt eine aufzählbare Sammlung der vollständigen Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.

EnumerateDirectories(String, String, SearchOption)

Gibt eine aufzählbare Sammlung von vollständigen Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.

EnumerateFiles(String)

Gibt eine aufzählbare Sammlung von vollständigen Dateinamen in einem angegebenen Pfad zurück.

EnumerateFiles(String, String)

Gibt eine aufzählbare Sammlung von vollständigen Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen.

EnumerateFiles(String, String, EnumerationOptions)

Gibt eine aufzählbare Sammlung von vollständigen Dateinamen zurück, die einem Suchmuster und Enumerationsoptionen in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.

EnumerateFiles(String, String, SearchOption)

Gibt eine aufzählbare Sammlung von vollständigen Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.

EnumerateFileSystemEntries(String)

Gibt eine aufzählbare Auflistung von Dateinamen und Verzeichnisnamen in einem angegebenen Pfad zurück.

EnumerateFileSystemEntries(String, String)

Gibt eine aufzählbare Auflistung von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Gibt eine aufzählbare Auflistung von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster und Enumerationsoptionen in einem angegebenen Pfad entsprechen.

EnumerateFileSystemEntries(String, String, SearchOption)

Gibt eine aufzählbare Auflistung von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.

Exists(String)

Bestimmt, ob der angegebene Pfad auf ein vorhandenes Verzeichnis auf einem Datenträger verweist.

GetAccessControl(String)

Ruft ein DirectorySecurity-Objekt ab, das die ACL-Einträge für ein angegebenes Verzeichnis kapselt.

GetAccessControl(String, AccessControlSections)

Ruft ein DirectorySecurity-Objekt ab, das die angegebenen Typen von Einträgen in einer Zugriffssteuerungsliste für ein angegebenes Verzeichnis kapselt.

GetCreationTime(String)

Ruft Datum und Zeit der Erstellung eines Verzeichnisses ab.

GetCreationTimeUtc(String)

Ruft das Erstellungsdatum und den Erstellungszeitpunkt im UTC-Format (Coordinated Universal Time, koordinierte Weltzeit) eines Verzeichnisses ab.

GetCurrentDirectory()

Ruft das aktuelle Arbeitsverzeichnis der Anwendung ab.

GetDirectories(String)

Gibt die Namen der Unterverzeichnisse (einschließlich der Pfade) im angegebenen Verzeichnis zurück.

GetDirectories(String, String)

Gibt die Namen von Unterverzeichnissen (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen.

GetDirectories(String, String, EnumerationOptions)

Gibt die Namen von Unterverzeichnissen (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen im angegebenen Verzeichnis entsprechen.

GetDirectories(String, String, SearchOption)

Gibt die Namen der Unterverzeichnisse (einschließlich der Pfade) zurück, die dem angegebenen Suchmuster im aktuellen Verzeichnis entsprechen. Optional werden Unterverzeichnisse durchsucht.

GetDirectoryRoot(String)

Gibt für den angegebenen Pfad die Informationen über Volume, Stammverzeichnis oder beides zurück.

GetFiles(String)

Gibt die Namen aller Dateien (einschließlich des Pfads) im angegebenen Verzeichnis zurück.

GetFiles(String, String)

Gibt die Namen der Dateien (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen.

GetFiles(String, String, EnumerationOptions)

Gibt die Namen der Dateien (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen im angegebenen Verzeichnis entsprechen.

GetFiles(String, String, SearchOption)

Gibt die Namen der Dateien (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen. Anhand eines Werts wird bestimmt, ob Unterverzeichnisse durchsucht werden sollen.

GetFileSystemEntries(String)

Gibt die Namen aller Dateien und Unterverzeichnisse in einem angegebenen Pfad zurück.

GetFileSystemEntries(String, String)

Gibt ein Array von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen.

GetFileSystemEntries(String, String, EnumerationOptions)

Gibt ein Array von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster und Enumerationsoptionen in einem angegebenen Pfad entsprechen.

GetFileSystemEntries(String, String, SearchOption)

Gibt ein Array aller Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.

GetLastAccessTime(String)

Gibt das Datum und die Uhrzeit des letzten Zugriffs auf die angegebene Datei bzw. das angegebene Verzeichnis zurück.

GetLastAccessTimeUtc(String)

Gibt das Datum und den Zeitpunkt im UTC-Format (Coordinated Universal Time, koordinierte Weltzeit) des letzten Zugriffs auf die angegebene Datei bzw. das angegebene Verzeichnis zurück.

GetLastWriteTime(String)

Gibt das Datum und die Uhrzeit des letzten Schreibvorgangs in die angegebene Datei bzw. das angegebene Verzeichnis zurück.

GetLastWriteTimeUtc(String)

Gibt das Datum und den Zeitpunkt des letzten Schreibzugriffs im UTC-Format (Coordinated Universal Time, koordinierte Weltzeit) auf die angegebenen Datei bzw. das angegebene Verzeichnis zurück.

GetLogicalDrives()

Ruft die Namen der logischen Laufwerke auf diesem Computer im Format "<Laufwerkbuchstabe>:\" ab.

GetParent(String)

Ruft das übergeordnete Verzeichnis des angegebenen Pfads ab, sowohl für absolute als auch für relative Pfade.

Move(String, String)

Verschiebt eine Datei oder ein Verzeichnis und dessen Inhalt an einen neuen Speicherort.

ResolveLinkTarget(String, Boolean)

Ruft das Ziel des angegebenen Verzeichnislinks ab.

SetAccessControl(String, DirectorySecurity)

Wendet von einem DirectorySecurity-Objekt beschriebene Einträge von Zugriffssteuerungslisten auf das angegebene Verzeichnis an.

SetCreationTime(String, DateTime)

Legt das Erstellungsdatum und den Erstellungszeitpunkt für die angegebene Datei bzw. das angegebene Verzeichnis fest.

SetCreationTimeUtc(String, DateTime)

Legt das Erstellungsdatum und den Erstellungszeitpunkt im UTC-Format (Coordinated Universal Time, koordinierte Weltzeit) für die angegebene Datei oder das angegebene Verzeichnis fest.

SetCurrentDirectory(String)

Legt das aktuelle Arbeitsverzeichnis der Anwendung auf das angegebene Verzeichnis fest.

SetLastAccessTime(String, DateTime)

Legt das Datum und die Uhrzeit des letzten Zugriffs auf die angegebene Datei bzw. das angegebene Verzeichnis fest.

SetLastAccessTimeUtc(String, DateTime)

Legt das Datum und den Zeitpunkt im UTC-Format (Coordinated Universal Time, koordinierte Weltzeit) des letzten Zugriffs auf die angegebene Datei bzw. das angegebene Verzeichnis fest.

SetLastWriteTime(String, DateTime)

Legt Datum und Zeit des letzten Schreibvorgangs in einem Verzeichnis fest.

SetLastWriteTimeUtc(String, DateTime)

Legt das Datum und den Zeitpunkt im UTC-Format (Coordinated Universal Time, koordinierte Weltzeit) des letzten Schreibzugriffs auf ein Verzeichnis fest.

Gilt für:

Weitere Informationen