Directory Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Macht statische Methoden zum Erstellen, Verschieben und Aufzählen durch Verzeichnisse und Unterverzeichnisse 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 nicht mehr im ursprünglichen Verzeichnis vorhanden.
using System;
using System.IO;
partial class Example1
{
static void TwoStringsExample()
{
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
Partial Class Example1
Shared Sub TwoStringExample()
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 Class
Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der EnumerateFiles Methode eine Auflistung von Textdateien aus einem Verzeichnis abrufen und diese Auflistung dann in einer Abfrage verwenden, um alle Zeilen zu finden, die "Example" enthalten.
using System;
using System.IO;
using System.Linq;
partial class Program
{
static void EnumerateFilesExample()
{
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
Partial Class Program
Shared Sub EnumerateFilesExample()
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 Class
Im folgenden Beispiel wird das Verschieben eines Verzeichnisses und aller zugehörigen Dateien in ein neues Verzeichnis veranschaulicht. Das ursprüngliche Verzeichnis ist nach dem Verschieben nicht mehr vorhanden.
using System;
using System.IO;
partial class Program
{
static void DirectoryMoveExample()
{
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
Partial Class Program
Shared Sub DirectoryMoveExample()
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 Class
Hinweise
Verwenden Sie die Directory Klasse für typische Vorgänge wie Kopieren, Verschieben, Umbenennen, Erstellen und Löschen von Verzeichnissen.
Verwenden Sie zum Erstellen eines Verzeichnisses eine der CreateDirectory Methoden.
Verwenden Sie zum Löschen eines Verzeichnisses eine der Delete Methoden.
Wenn Sie das aktuelle Verzeichnis für eine App abrufen oder festlegen möchten, verwenden Sie die GetCurrentDirectory Oder-Methode SetCurrentDirectory .
Verwenden Sie Zum Bearbeiten DateTime von Informationen im Zusammenhang mit der Erstellung, dem Zugriff und dem Schreiben eines Verzeichnisses 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 DirectoryInfo verwenden, da die Sicherheitsüberprüfung nicht immer erforderlich ist.
Wenn Sie nur eine verzeichnisbezogene Aktion ausführen, ist es möglicherweise effizienter, eine statische Directory Methode anstelle einer entsprechenden DirectoryInfo Instanzmethode zu verwenden. Die meisten Directory Methoden erfordern den Pfad zum Verzeichnis, das Sie bearbeiten.
Note
In Membern, die einen Zeichenfolgenparameter path akzeptieren, muss dieser Pfad wohlgeformt sein, oder eine Ausnahme wird ausgelöst. Wenn beispielsweise ein Pfad vollqualifizierter Pfad ist, aber mit einem Leerzeichen (" c:\temp") beginnt, wird die Pfadzeichenfolge nicht gekürzt, sodass der Pfad als falsch formatiert betrachtet wird und eine Ausnahme ausgelöst wird. Darüber hinaus kann ein Pfad oder eine Kombination von Pfaden nicht zweimal vollqualifizierte werden. Beispielsweise löst "c:\temp c:\windows" auch eine Ausnahme aus. Stellen Sie sicher, dass Ihre Pfade bei Verwendung von Methoden, die eine Pfadzeichenfolge akzeptieren, wohlgeformt sind. Weitere Informationen finden Sie unter Path.
In Mitgliedern, 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 zulässigen Pfade:
"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 der vollständige Lese-/Schreibzugriff auf neue Verzeichnisse gewährt. Die App muss jedoch über die richtige Sicherheit verfügen, um auf vorhandene Verzeichnisse zuzugreifen.
Wenn Sie Berechtigungen für ein Verzeichnis und alle unterverzeichnisse anfordern möchten, beenden Sie die Pfadzeichenfolge mit dem Verzeichnistrennzeichen. (Beispielsweise gewährt "C:\Temp\" Zugriff auf C:\Temp\ und alle unterverzeichnisse.) Wenn Sie Berechtigungen nur für ein bestimmtes Verzeichnis anfordern möchten, beenden Sie die Pfadzeichenfolge mit einem Punkt. (Beispielsweise gewährt "C:\Temp\" nur Zugriff auf C:\Temp\, nicht auf seine Unterverzeichnisse.)
In Elementen, die einen searchPattern Parameter akzeptieren, kann die Suchzeichenfolge eine beliebige Kombination aus Literalzeichen und zwei Wildcardzeichen sein; * und ?. Dieser Parameter erkennt keine regulären Ausdrücke. Weitere Informationen finden Sie in der EnumerateDirectories(String, String) Methode oder einer anderen Methode, die den searchPattern Parameter verwendet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Methoden
| Name | Beschreibung |
|---|---|
| CreateDirectory(String, DirectorySecurity) |
Erstellt alle Verzeichnisse im angegebenen Pfad, sofern sie nicht bereits vorhanden sind, und wendet die angegebene Windows-Sicherheit an. |
| CreateDirectory(String, UnixFileMode) |
Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad mit den angegebenen Berechtigungen, es sei denn, sie sind bereits vorhanden. |
| CreateDirectory(String) |
Erstellt alle Verzeichnisse und Unterverzeichnisse im angegebenen Pfad, es sei denn, sie sind bereits vorhanden. |
| CreateSymbolicLink(String, String) |
Erstellt eine symbolische Verzeichnisverbindung, die durch |
| CreateTempSubdirectory(String) |
Erstellt ein eindeutig benanntes, leeres Verzeichnis im temporären Verzeichnis des aktuellen Benutzers. |
| Delete(String, Boolean) |
Löscht das angegebene Verzeichnis, und gegebenenfalls alle Unterverzeichnisse und Dateien im Verzeichnis. |
| Delete(String) |
Löscht ein leeres Verzeichnis aus einem angegebenen Pfad. |
| EnumerateDirectories(String, String, EnumerationOptions) |
Gibt eine aufzählbare Auflistung der vollständigen Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen und optional Unterverzeichnisse durchsucht. |
| EnumerateDirectories(String, String, SearchOption) |
Gibt eine aufzählbare Auflistung von vollständigen Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen, und sucht optional Unterverzeichnisse. |
| EnumerateDirectories(String, String) |
Gibt eine aufzählbare Auflistung von vollständigen Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. |
| EnumerateDirectories(String) |
Gibt eine aufzählbare Auflistung von vollständigen Verzeichnisnamen in einem angegebenen Pfad zurück. |
| EnumerateFiles(String, String, EnumerationOptions) |
Gibt eine aufzählbare Auflistung vollständiger Dateinamen zurück, die einem Suchmuster und Enumerationsoptionen in einem angegebenen Pfad entsprechen und optional Unterverzeichnisse durchsucht. |
| EnumerateFiles(String, String, SearchOption) |
Gibt eine aufzählbare Auflistung vollständiger Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen und optional Unterverzeichnisse durchsucht. |
| EnumerateFiles(String, String) |
Gibt eine aufzählbare Auflistung vollständiger Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. |
| EnumerateFiles(String) |
Gibt eine aufzählbare Auflistung vollständiger Dateinamen in einem angegebenen Pfad zurück. |
| 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, und sucht optional Unterverzeichnisse. |
| EnumerateFileSystemEntries(String, String) |
Gibt eine aufzählbare Auflistung von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. |
| EnumerateFileSystemEntries(String) |
Gibt eine aufzählbare Auflistung von Dateinamen und Verzeichnisnamen in einem angegebenen Pfad zurück. |
| Exists(String) |
Bestimmt, ob der angegebene Pfad auf ein vorhandenes Verzeichnis auf dem Datenträger verweist. |
| GetAccessControl(String, AccessControlSections) |
Ruft ein DirectorySecurity Objekt ab, das den angegebenen Typ der Zugriffssteuerungsliste (Access Control List, ACL)-Einträge für ein angegebenes Verzeichnis kapselt. |
| GetAccessControl(String) |
Ruft ein DirectorySecurity Objekt ab, das die Zugriffssteuerungslisteneinträge (Access Control List, ACL) für ein angegebenes Verzeichnis kapselt. |
| GetCreationTime(String) |
Ruft das Erstellungsdatum und die Uhrzeit eines Verzeichnisses ab. |
| GetCreationTimeUtc(String) |
Ruft das Erstellungsdatum und die Uhrzeit im UTC-Format (Coordinated Universal Time) eines Verzeichnisses ab. |
| GetCurrentDirectory() |
Ruft das aktuelle Arbeitsverzeichnis der Anwendung ab. |
| GetDirectories(String, String, EnumerationOptions) |
Gibt die Namen von Unterverzeichnissen (einschließlich ihrer Pfade) zurück, die den angegebenen Suchmustern und Enumerationsoptionen im angegebenen Verzeichnis entsprechen. |
| GetDirectories(String, String, SearchOption) |
Gibt die Namen der Unterverzeichnisse (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen, und sucht optional Unterverzeichnisse. |
| GetDirectories(String, String) |
Gibt die Namen von Unterverzeichnissen (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen. |
| GetDirectories(String) |
Gibt die Namen von Unterverzeichnissen (einschließlich ihrer Pfade) im angegebenen Verzeichnis zurück. |
| GetDirectoryRoot(String) |
Gibt die Volumeinformationen, Stamminformationen oder beides für den angegebenen Pfad zurück. |
| GetFiles(String, String, EnumerationOptions) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die den angegebenen Suchmustern und Enumerationsoptionen im angegebenen Verzeichnis entsprechen. |
| GetFiles(String, String, SearchOption) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen, wobei ein Wert verwendet wird, um zu bestimmen, ob Unterverzeichnisse durchsucht werden sollen. |
| GetFiles(String, String) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen. |
| GetFiles(String) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) im angegebenen Verzeichnis zurück. |
| 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, und sucht optional Unterverzeichnisse. |
| GetFileSystemEntries(String, String) |
Gibt ein Array von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. |
| GetFileSystemEntries(String) |
Gibt die Namen aller Dateien und Unterverzeichnisse in einem angegebenen Pfad zurück. |
| GetLastAccessTime(String) |
Gibt das Datum und die Uhrzeit des letzten Zugriffs auf die angegebene Datei oder das angegebene Verzeichnis zurück. |
| GetLastAccessTimeUtc(String) |
Gibt das Datum und die Uhrzeit im UTC-Format (Coordinated Universal Time) zurück, auf das die angegebene Datei oder das angegebene Verzeichnis zuletzt zugegriffen wurde. |
| GetLastWriteTime(String) |
Gibt das Datum und die Uhrzeit zurück, in das die angegebene Datei oder das angegebene Verzeichnis zuletzt geschrieben wurde. |
| GetLastWriteTimeUtc(String) |
Gibt das Datum und die Uhrzeit im UTC-Format (Coordinated Universal Time) zurück, in das die angegebene Datei oder das angegebene Verzeichnis zuletzt geschrieben wurde. |
| GetLogicalDrives() |
Ruft die Namen der logischen Laufwerke auf diesem Computer ab. |
| GetParent(String) |
Ruft das übergeordnete Verzeichnis des angegebenen Pfads ab, einschließlich absoluter und relativer Pfade. |
| Move(String, String) |
Verschiebt eine Datei oder ein Verzeichnis und deren Inhalt an einen neuen Speicherort. |
| ResolveLinkTarget(String, Boolean) |
Ruft das Ziel der angegebenen Verzeichnisverbindung ab. |
| SetAccessControl(String, DirectorySecurity) |
Wendet ACL-Einträge (Access Control List) an, die von einem DirectorySecurity Objekt auf das angegebene Verzeichnis beschrieben werden. |
| SetCreationTime(String, DateTime) |
Legt das Erstellungsdatum und die Uhrzeit für die angegebene Datei oder das angegebene Verzeichnis fest. |
| SetCreationTimeUtc(String, DateTime) |
Legt das Erstellungsdatum und die Uhrzeit im UTC-Format (Coordinated Universal Time) 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 oder das angegebene Verzeichnis fest. |
| SetLastAccessTimeUtc(String, DateTime) |
Legt das Datum und die Uhrzeit im UTC-Format (Coordinated Universal Time) fest, auf das die angegebene Datei oder das angegebene Verzeichnis zuletzt zugegriffen wurde. |
| SetLastWriteTime(String, DateTime) |
Legt das Datum und die Uhrzeit fest, in das ein Verzeichnis zuletzt geschrieben wurde. |
| SetLastWriteTimeUtc(String, DateTime) |
Legt das Datum und die Uhrzeit im UTC-Format (Coordinated Universal Time) fest, in das ein Verzeichnis zuletzt geschrieben wurde. |