Directory.GetFileSystemEntries Methode
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.
Gibt die Namen aller Dateien und Unterverzeichnisse zurück, die den angegebenen Kriterien entsprechen.
Überlädt
| Name | Beschreibung |
|---|---|
| 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, und sucht optional Unterverzeichnisse. |
GetFileSystemEntries(String)
Gibt die Namen aller Dateien und Unterverzeichnisse in einem angegebenen Pfad zurück.
public:
static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path);
public static string[] GetFileSystemEntries(string path);
static member GetFileSystemEntries : string -> string[]
Public Shared Function GetFileSystemEntries (path As String) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
Gibt zurück
Ein Array der Namen von Dateien und Unterverzeichnissen im angegebenen Verzeichnis oder ein leeres Array, wenn keine Dateien oder Unterverzeichnisse gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mit GetInvalidPathChars().
path ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
path ist ein Dateiname.
Der angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel wird die GetFileSystemEntries Methode verwendet, um ein Array von Zeichenfolgen mit den Namen aller Dateien und Unterverzeichnisse an einem vom Benutzer angegebenen Speicherort auszufüllen und jede Zeichenfolge im Array in der Konsole zu drucken. Das Beispiel ist so konfiguriert, dass alle fehler erfasst werden, die dieser Methode gemeinsam sind.
using System;
namespace GetFileSystemEntries
{
class Class1
{
static void Main(string[] args)
{
Class1 snippets = new Class1();
string path = System.IO.Directory.GetCurrentDirectory();
string filter = "*.exe";
snippets.PrintFileSystemEntries(path);
snippets.PrintFileSystemEntries(path, filter);
snippets.GetLogicalDrives();
snippets.GetParent(path);
snippets.Move("C:\\proof", "C:\\Temp");
}
void PrintFileSystemEntries(string path)
{
try
{
// Obtain the file system entries in the directory path.
string[] directoryEntries =
System.IO.Directory.GetFileSystemEntries(path);
foreach (string str in directoryEntries)
{
System.Console.WriteLine(str);
}
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, " +
"or contains invalid characters.");
}
catch (System.IO.DirectoryNotFoundException)
{
System.Console.WriteLine("The path encapsulated in the " +
"Directory object does not exist.");
}
}
void PrintFileSystemEntries(string path, string pattern)
{
try
{
// Obtain the file system entries in the directory
// path that match the pattern.
string[] directoryEntries =
System.IO.Directory.GetFileSystemEntries(path, pattern);
foreach (string str in directoryEntries)
{
System.Console.WriteLine(str);
}
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, " +
"or contains invalid characters.");
}
catch (System.IO.DirectoryNotFoundException)
{
System.Console.WriteLine("The path encapsulated in the " +
"Directory object does not exist.");
}
}
// Print out all logical drives on the system.
void GetLogicalDrives()
{
try
{
string[] drives = System.IO.Directory.GetLogicalDrives();
foreach (string str in drives)
{
System.Console.WriteLine(str);
}
}
catch (System.IO.IOException)
{
System.Console.WriteLine("An I/O error occurs.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
}
void GetParent(string path)
{
try
{
System.IO.DirectoryInfo directoryInfo =
System.IO.Directory.GetParent(path);
System.Console.WriteLine(directoryInfo.FullName);
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, or " +
"contains invalid characters.");
}
}
void Move(string sourcePath, string destinationPath)
{
try
{
System.IO.Directory.Move(sourcePath, destinationPath);
System.Console.WriteLine("The directory move is complete.");
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, " +
"or contains invalid characters.");
}
catch (System.IO.IOException)
{
System.Console.WriteLine("An attempt was made to move a " +
"directory to a different " +
"volume, or destDirName " +
"already exists.");
}
}
}
}
open System
open System.IO
open System.Security
let printFileSystemEntries path =
try
// Obtain the file system entries in the directory path.
let directoryEntries = Directory.GetFileSystemEntries path
for str in directoryEntries do
printfn $"{str}"
with
| :? ArgumentNullException ->
printfn "Path is a null reference."
| :? SecurityException ->
printfn $"The caller does not have the required permission."
| :? ArgumentException ->
printfn $"Path is an empty string, contains only white spaces, or contains invalid characters."
| :? DirectoryNotFoundException ->
printfn $"The path encapsulated in the Directory object does not exist."
let printFileSystemEntriesPattern path pattern =
try
// Obtain the file system entries in the directory
// path that match the pattern.
let directoryEntries = Directory.GetFileSystemEntries(path, pattern)
for str in directoryEntries do
printfn $"{str}"
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? SecurityException -> printfn "The caller does not have the required permission."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
| :? DirectoryNotFoundException -> printfn "The path encapsulated in the Directory object does not exist."
// Print out all logical drives on the system.
let getLogicalDrives () =
try
let drives = Directory.GetLogicalDrives()
for str in drives do
printfn $"{str}"
with
| :? IOException -> printfn "An I/O error occurs."
| :? SecurityException -> printfn "The caller does not have the required permission."
let getParent path =
try
let directoryInfo = Directory.GetParent path
printfn $"{directoryInfo.FullName}"
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
let move sourcePath destinationPath =
try
Directory.Move(sourcePath, destinationPath)
printfn "The directory move is complete."
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? SecurityException -> printfn "The caller does not have the required permission."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
| :? IOException -> printfn "An attempt was made to move a directory to a different volume, or destDirName already exists."
let path = Directory.GetCurrentDirectory()
let filter = "*.exe"
printFileSystemEntries path
printFileSystemEntriesPattern path filter
getLogicalDrives ()
getParent path
move "C:\\proof" "C:\\Temp"
Option Explicit On
Option Strict On
Namespace GetFileSystemEntries
Class Class1
Overloads Shared Sub Main(ByVal args() As String)
Dim snippets As New Class1()
Dim path As String = System.IO.Directory.GetCurrentDirectory()
Dim filter As String = "*.exe"
snippets.PrintFileSystemEntries(path)
snippets.PrintFileSystemEntries(path, filter)
snippets.GetLogicalDrives()
snippets.GetParent(path)
snippets.Move("C:\proof", "C:\Temp")
End Sub
Sub PrintFileSystemEntries(ByVal path As String)
Try
' Obtain the file system entries in the directory path.
Dim directoryEntries As String()
directoryEntries = System.IO.Directory.GetFileSystemEntries(path)
Dim str As String
For Each str In directoryEntries
System.Console.WriteLine(str)
Next str
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, " + _
"or contains invalid characters.")
Catch exp As System.IO.DirectoryNotFoundException
System.Console.WriteLine("The path encapsulated in the " + _
"Directory object does not exist.")
End Try
End Sub
Sub PrintFileSystemEntries(ByVal path As String, _
ByVal pattern As String)
Try
' Obtain the file system entries in the directory
' path that match the pattern.
Dim directoryEntries As String()
directoryEntries = _
System.IO.Directory.GetFileSystemEntries(path, pattern)
Dim str As String
For Each str In directoryEntries
System.Console.WriteLine(str)
Next str
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, " + _
"or contains invalid characters.")
Catch exp As System.IO.DirectoryNotFoundException
System.Console.WriteLine("The path encapsulated in the " + _
"Directory object does not exist.")
End Try
End Sub
' Print out all logical drives on the system.
Sub GetLogicalDrives()
Try
Dim drives As String()
drives = System.IO.Directory.GetLogicalDrives()
Dim str As String
For Each str In drives
System.Console.WriteLine(str)
Next str
Catch exp As System.IO.IOException
System.Console.WriteLine("An I/O error occurs.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
End Try
End Sub
Sub GetParent(ByVal path As String)
Try
Dim directoryInfo As System.IO.DirectoryInfo
directoryInfo = System.IO.Directory.GetParent(path)
System.Console.WriteLine(directoryInfo.FullName)
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, or " + _
"contains invalid characters.")
End Try
End Sub
Sub Move(ByVal sourcePath As String, ByVal destinationPath As String)
Try
System.IO.Directory.Move(sourcePath, destinationPath)
System.Console.WriteLine("The directory move is complete.")
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, " + _
"or contains invalid characters.")
Catch exp As System.IO.IOException
System.Console.WriteLine("An attempt was made to move a " + _
"directory to a different " + _
"volume, or destDirName " + _
"already exists.")
End Try
End Sub
End Class
End Namespace
Hinweise
Die Reihenfolge der zurückgegebenen Datei- und Verzeichnisnamen ist nicht garantiert; verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
Die EnumerateFileSystemEntries Methoden GetFileSystemEntries unterscheiden sich wie folgt: Bei Verwendung EnumerateFileSystemEntrieskönnen Sie mit der Aufzählung der Auflistung von Einträgen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Bei Verwendung GetFileSystemEntriesmüssen Sie warten, bis das gesamte Array von Einträgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, EnumerateFileSystemEntries wenn Sie mit vielen Dateien und Verzeichnissen arbeiten.
Diese Methode ist mit dem Sternchen (*) identisch GetFileSystemEntries , das als Suchmuster angegeben ist.
Der path Parameter darf relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die Groß-/Kleinschreibung des path Parameters entspricht dem des Dateisystems, auf dem der Code ausgeführt wird. Die Groß-/Kleinschreibung wird z. B. bei NTFS (dem Standardmäßigen Windows-Dateisystem) beachtet und die Groß-/Kleinschreibung auf Linux-Dateisystemen beachtet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Weitere Informationen
- FileSystemWatcher
- FileSystemInfo
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
Gilt für:
GetFileSystemEntries(String, String)
Gibt ein Array von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen.
public:
static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path, System::String ^ searchPattern);
public static string[] GetFileSystemEntries(string path, string searchPattern);
static member GetFileSystemEntries : string * string -> string[]
Public Shared Function GetFileSystemEntries (path As String, searchPattern As String) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
- searchPattern
- String
Die Suchzeichenfolge, die mit den Namen von Dateien und Verzeichnissen in pathübereinstimmen soll. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Wildcardzeichen (* und ?) enthalten, unterstützt aber keine regulären Ausdrücke.
Gibt zurück
Ein Array von Dateinamen und Verzeichnisnamen, die den angegebenen Suchkriterien entsprechen, oder ein leeres Array, wenn keine Dateien oder Verzeichnisse gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mit der GetInvalidPathChars() Methode abfragen.
-oder-
searchPattern enthält kein gültiges Muster.
path oder searchPattern ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
path ist ein Dateiname.
Der angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel wird die GetFileSystemEntries Methode verwendet, um ein Array von Zeichenfolgen mit den Namen aller Dateien zu füllen, die einem vom Benutzer angegebenen Filter an einem bestimmten Speicherort entsprechen, und gibt jede Zeichenfolge im Array in der Konsole aus. Das Beispiel ist so konfiguriert, dass alle fehler erfasst werden, die dieser Methode gemeinsam sind.
using System;
namespace GetFileSystemEntries
{
class Class1
{
static void Main(string[] args)
{
Class1 snippets = new Class1();
string path = System.IO.Directory.GetCurrentDirectory();
string filter = "*.exe";
snippets.PrintFileSystemEntries(path);
snippets.PrintFileSystemEntries(path, filter);
snippets.GetLogicalDrives();
snippets.GetParent(path);
snippets.Move("C:\\proof", "C:\\Temp");
}
void PrintFileSystemEntries(string path)
{
try
{
// Obtain the file system entries in the directory path.
string[] directoryEntries =
System.IO.Directory.GetFileSystemEntries(path);
foreach (string str in directoryEntries)
{
System.Console.WriteLine(str);
}
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, " +
"or contains invalid characters.");
}
catch (System.IO.DirectoryNotFoundException)
{
System.Console.WriteLine("The path encapsulated in the " +
"Directory object does not exist.");
}
}
void PrintFileSystemEntries(string path, string pattern)
{
try
{
// Obtain the file system entries in the directory
// path that match the pattern.
string[] directoryEntries =
System.IO.Directory.GetFileSystemEntries(path, pattern);
foreach (string str in directoryEntries)
{
System.Console.WriteLine(str);
}
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, " +
"or contains invalid characters.");
}
catch (System.IO.DirectoryNotFoundException)
{
System.Console.WriteLine("The path encapsulated in the " +
"Directory object does not exist.");
}
}
// Print out all logical drives on the system.
void GetLogicalDrives()
{
try
{
string[] drives = System.IO.Directory.GetLogicalDrives();
foreach (string str in drives)
{
System.Console.WriteLine(str);
}
}
catch (System.IO.IOException)
{
System.Console.WriteLine("An I/O error occurs.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
}
void GetParent(string path)
{
try
{
System.IO.DirectoryInfo directoryInfo =
System.IO.Directory.GetParent(path);
System.Console.WriteLine(directoryInfo.FullName);
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, or " +
"contains invalid characters.");
}
}
void Move(string sourcePath, string destinationPath)
{
try
{
System.IO.Directory.Move(sourcePath, destinationPath);
System.Console.WriteLine("The directory move is complete.");
}
catch (ArgumentNullException)
{
System.Console.WriteLine("Path is a null reference.");
}
catch (System.Security.SecurityException)
{
System.Console.WriteLine("The caller does not have the " +
"required permission.");
}
catch (ArgumentException)
{
System.Console.WriteLine("Path is an empty string, " +
"contains only white spaces, " +
"or contains invalid characters.");
}
catch (System.IO.IOException)
{
System.Console.WriteLine("An attempt was made to move a " +
"directory to a different " +
"volume, or destDirName " +
"already exists.");
}
}
}
}
open System
open System.IO
open System.Security
let printFileSystemEntries path =
try
// Obtain the file system entries in the directory path.
let directoryEntries = Directory.GetFileSystemEntries path
for str in directoryEntries do
printfn $"{str}"
with
| :? ArgumentNullException ->
printfn "Path is a null reference."
| :? SecurityException ->
printfn $"The caller does not have the required permission."
| :? ArgumentException ->
printfn $"Path is an empty string, contains only white spaces, or contains invalid characters."
| :? DirectoryNotFoundException ->
printfn $"The path encapsulated in the Directory object does not exist."
let printFileSystemEntriesPattern path pattern =
try
// Obtain the file system entries in the directory
// path that match the pattern.
let directoryEntries = Directory.GetFileSystemEntries(path, pattern)
for str in directoryEntries do
printfn $"{str}"
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? SecurityException -> printfn "The caller does not have the required permission."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
| :? DirectoryNotFoundException -> printfn "The path encapsulated in the Directory object does not exist."
// Print out all logical drives on the system.
let getLogicalDrives () =
try
let drives = Directory.GetLogicalDrives()
for str in drives do
printfn $"{str}"
with
| :? IOException -> printfn "An I/O error occurs."
| :? SecurityException -> printfn "The caller does not have the required permission."
let getParent path =
try
let directoryInfo = Directory.GetParent path
printfn $"{directoryInfo.FullName}"
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
let move sourcePath destinationPath =
try
Directory.Move(sourcePath, destinationPath)
printfn "The directory move is complete."
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? SecurityException -> printfn "The caller does not have the required permission."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
| :? IOException -> printfn "An attempt was made to move a directory to a different volume, or destDirName already exists."
let path = Directory.GetCurrentDirectory()
let filter = "*.exe"
printFileSystemEntries path
printFileSystemEntriesPattern path filter
getLogicalDrives ()
getParent path
move "C:\\proof" "C:\\Temp"
Option Explicit On
Option Strict On
Namespace GetFileSystemEntries
Class Class1
Overloads Shared Sub Main(ByVal args() As String)
Dim snippets As New Class1()
Dim path As String = System.IO.Directory.GetCurrentDirectory()
Dim filter As String = "*.exe"
snippets.PrintFileSystemEntries(path)
snippets.PrintFileSystemEntries(path, filter)
snippets.GetLogicalDrives()
snippets.GetParent(path)
snippets.Move("C:\proof", "C:\Temp")
End Sub
Sub PrintFileSystemEntries(ByVal path As String)
Try
' Obtain the file system entries in the directory path.
Dim directoryEntries As String()
directoryEntries = System.IO.Directory.GetFileSystemEntries(path)
Dim str As String
For Each str In directoryEntries
System.Console.WriteLine(str)
Next str
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, " + _
"or contains invalid characters.")
Catch exp As System.IO.DirectoryNotFoundException
System.Console.WriteLine("The path encapsulated in the " + _
"Directory object does not exist.")
End Try
End Sub
Sub PrintFileSystemEntries(ByVal path As String, _
ByVal pattern As String)
Try
' Obtain the file system entries in the directory
' path that match the pattern.
Dim directoryEntries As String()
directoryEntries = _
System.IO.Directory.GetFileSystemEntries(path, pattern)
Dim str As String
For Each str In directoryEntries
System.Console.WriteLine(str)
Next str
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, " + _
"or contains invalid characters.")
Catch exp As System.IO.DirectoryNotFoundException
System.Console.WriteLine("The path encapsulated in the " + _
"Directory object does not exist.")
End Try
End Sub
' Print out all logical drives on the system.
Sub GetLogicalDrives()
Try
Dim drives As String()
drives = System.IO.Directory.GetLogicalDrives()
Dim str As String
For Each str In drives
System.Console.WriteLine(str)
Next str
Catch exp As System.IO.IOException
System.Console.WriteLine("An I/O error occurs.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
End Try
End Sub
Sub GetParent(ByVal path As String)
Try
Dim directoryInfo As System.IO.DirectoryInfo
directoryInfo = System.IO.Directory.GetParent(path)
System.Console.WriteLine(directoryInfo.FullName)
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, or " + _
"contains invalid characters.")
End Try
End Sub
Sub Move(ByVal sourcePath As String, ByVal destinationPath As String)
Try
System.IO.Directory.Move(sourcePath, destinationPath)
System.Console.WriteLine("The directory move is complete.")
Catch exp As ArgumentNullException
System.Console.WriteLine("Path is a null reference.")
Catch exp As System.Security.SecurityException
System.Console.WriteLine("The caller does not have the " + _
"required permission.")
Catch exp As ArgumentException
System.Console.WriteLine("Path is an empty string, " + _
"contains only white spaces, " + _
"or contains invalid characters.")
Catch exp As System.IO.IOException
System.Console.WriteLine("An attempt was made to move a " + _
"directory to a different " + _
"volume, or destDirName " + _
"already exists.")
End Try
End Sub
End Class
End Namespace
Hinweise
Die Reihenfolge der zurückgegebenen Datei- und Verzeichnisnamen ist nicht garantiert; verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
searchPattern kann eine Kombination aus Literal- und Wildcardzeichen sein, aber reguläre Ausdrücke werden nicht unterstützt. Die folgenden Wildcardspezifizierer sind zulässig in searchPattern.
| Wildcardbezeichner | Treffer |
|---|---|
| * (Sternchen) | Null oder mehr Zeichen an dieser Position. |
| ? (Fragezeichen) | Genau ein Zeichen an dieser Position. |
Andere Zeichen als der Wildcard sind Literalzeichen. Beispielsweise sucht die searchPattern Zeichenfolge "*t" nach allen Namen, die path mit dem Buchstaben "t" enden. Die searchPattern Zeichenfolge "s*" sucht nach allen Namen, die path mit dem Buchstaben "s" beginnen.
searchPattern Darf nicht in zwei Perioden ("..") enden oder zwei Punkte ("."), gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorChar, oder dürfen sie keine ungültigen Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars Methode abfragen.
Note
Wenn Sie das Sternchen in einem searchPattern Sternchen wie "*.txt" verwenden, wirkt sich die Anzahl der Zeichen in der angegebenen Erweiterung auf die Suche wie folgt aus:
- Wenn die angegebene Erweiterung genau drei Zeichen lang ist, gibt die Methode Dateien mit Erweiterungen zurück, die mit der angegebenen Erweiterung beginnen. Beispielsweise gibt "*.xls" sowohl "book.xls" als auch "book.xlsx" zurück.
- In allen anderen Fällen gibt die Methode Dateien zurück, die exakt mit der angegebenen Erweiterung übereinstimmen. Beispielsweise gibt "*.ai" "file.ai" zurück, aber nicht "file.aif".
Wenn Sie das Fragezeichen-Wildcardzeichen verwenden, gibt diese Methode nur Dateien zurück, die der angegebenen Dateierweiterung entsprechen. Wenn Sie beispielsweise zwei Dateien haben, "file1.txt" und "file1.txtother", in einem Verzeichnis, ein Suchmuster von "Datei?.txt" gibt nur die erste Datei zurück, während ein Suchmuster von "file*.txt" beide Dateien zurückgibt.
Der path Parameter darf relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die Groß-/Kleinschreibung des path Parameters entspricht dem des Dateisystems, auf dem der Code ausgeführt wird. Die Groß-/Kleinschreibung wird z. B. bei NTFS (dem Standardmäßigen Windows-Dateisystem) beachtet und die Groß-/Kleinschreibung auf Linux-Dateisystemen beachtet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Weitere Informationen
- FileSystemInfo
- FileSystemWatcher
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
Gilt für:
GetFileSystemEntries(String, String, EnumerationOptions)
Gibt ein Array von Dateinamen und Verzeichnisnamen zurück, die einem Suchmuster und Enumerationsoptionen in einem angegebenen Pfad entsprechen.
public:
static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetFileSystemEntries : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetFileSystemEntries (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
- searchPattern
- String
Die Suchzeichenfolge, die mit den Namen von Dateien und Verzeichnissen in pathübereinstimmen soll. Dieser Parameter kann eine Kombination aus gültigen Literal- und Wildcardzeichen enthalten, unterstützt aber keine regulären Ausdrücke.
- enumerationOptions
- EnumerationOptions
Ein Objekt, das die zu verwendende Such- und Enumerationskonfiguration beschreibt.
Gibt zurück
Ein Array von Dateinamen und Verzeichnisnamen, die den angegebenen Suchmuster- und Enumerationsoptionen entsprechen, oder ein leeres Array, wenn keine Dateien oder Verzeichnisse gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mit der GetInvalidPathChars() Methode abfragen.
-oder-
searchPattern enthält kein gültiges Muster.
path oder searchPattern ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
path ist ein Dateiname.
Der angegebene Pfad ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
Hinweise
Die Reihenfolge der zurückgegebenen Datei- und Verzeichnisnamen ist nicht garantiert; verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
searchPattern kann eine Kombination aus Literal- und Wildcardzeichen sein, aber reguläre Ausdrücke werden nicht unterstützt. Die folgenden Wildcardspezifizierer sind zulässig in searchPattern.
| Wildcardbezeichner | Treffer |
|---|---|
| * (Sternchen) | Null oder mehr Zeichen an dieser Position. |
| ? (Fragezeichen) | Genau ein Zeichen an dieser Position. |
Andere Zeichen als der Wildcard sind Literalzeichen. Beispielsweise sucht die searchPattern Zeichenfolge "*t" nach allen Namen, die path mit dem Buchstaben "t" enden. Die searchPattern Zeichenfolge "s*" sucht nach allen Namen, die path mit dem Buchstaben "s" beginnen.
searchPattern Darf nicht in zwei Perioden ("..") enden oder zwei Punkte ("."), gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorChar, oder dürfen sie keine ungültigen Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars Methode abfragen.
Note
Wenn Sie das Sternchen in einem searchPattern Sternchen wie "*.txt" verwenden, wirkt sich die Anzahl der Zeichen in der angegebenen Erweiterung auf die Suche wie folgt aus:
- Wenn die angegebene Erweiterung genau drei Zeichen lang ist, gibt die Methode Dateien mit Erweiterungen zurück, die mit der angegebenen Erweiterung beginnen. Beispielsweise gibt "*.xls" sowohl "book.xls" als auch "book.xlsx" zurück.
- In allen anderen Fällen gibt die Methode Dateien zurück, die exakt mit der angegebenen Erweiterung übereinstimmen. Beispielsweise gibt "*.ai" "file.ai" zurück, aber nicht "file.aif".
Wenn Sie das Fragezeichen-Wildcardzeichen verwenden, gibt diese Methode nur Dateien zurück, die der angegebenen Dateierweiterung entsprechen. Wenn Sie beispielsweise zwei Dateien haben, "file1.txt" und "file1.txtother", in einem Verzeichnis, ein Suchmuster von "Datei?.txt" gibt nur die erste Datei zurück, während ein Suchmuster von "file*.txt" beide Dateien zurückgibt.
Der path Parameter darf relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die Groß-/Kleinschreibung des path Parameters entspricht dem des Dateisystems, auf dem der Code ausgeführt wird. Die Groß-/Kleinschreibung wird z. B. bei NTFS (dem Standardmäßigen Windows-Dateisystem) beachtet und die Groß-/Kleinschreibung auf Linux-Dateisystemen beachtet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Gilt für:
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.
public:
static cli::array <System::String ^> ^ GetFileSystemEntries(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetFileSystemEntries(string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetFileSystemEntries : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetFileSystemEntries (path As String, searchPattern As String, searchOption As SearchOption) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
- searchPattern
- String
Die Suchzeichenfolge, die mit den Namen von Dateien und Verzeichnissen in pathübereinstimmen soll. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Wildcardzeichen (* und ?) enthalten, unterstützt aber keine regulären Ausdrücke.
- searchOption
- SearchOption
Einer der Enumerationswerte, der angibt, ob der Suchvorgang nur das aktuelle Verzeichnis enthalten soll oder alle Unterverzeichnisse enthalten soll. Der Standardwert ist TopDirectoryOnly.
Gibt zurück
Ein Array von Dateinamen und Verzeichnisnamen, die den angegebenen Suchkriterien entsprechen, oder ein leeres Array, wenn keine Dateien oder Verzeichnisse gefunden werden.
Ausnahmen
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder ungültige Zeichen. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars() Methode abfragen.
-oder-
searchPattern enthält kein gültiges Muster.
searchOption ist kein gültiger SearchOption Wert.
path ist ungültig, z. B. auf ein nicht zugeordnetes Laufwerk.
path ist ein Dateiname.
Der angegebene Pfad, der Dateiname oder die Kombination überschreitet die vom System definierte maximale Länge.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Hinweise
Die Reihenfolge der zurückgegebenen Datei- und Verzeichnisnamen ist nicht garantiert; verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
searchPattern kann eine Kombination aus Literal- und Wildcardzeichen sein, aber reguläre Ausdrücke werden nicht unterstützt. Die folgenden Wildcardspezifizierer sind zulässig in searchPattern.
| Wildcardbezeichner | Treffer |
|---|---|
| * (Sternchen) | Null oder mehr Zeichen an dieser Position. |
| ? (Fragezeichen) | Genau ein Zeichen an dieser Position. |
Andere Zeichen als der Wildcard sind Literalzeichen. Beispielsweise sucht die searchPattern Zeichenfolge "*t" nach allen Namen, die path mit dem Buchstaben "t" enden. Die searchPattern Zeichenfolge "s*" sucht nach allen Namen, die path mit dem Buchstaben "s" beginnen.
searchPattern Darf nicht in zwei Perioden ("..") enden oder zwei Punkte ("."), gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorChar, oder dürfen sie keine ungültigen Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars Methode abfragen.
Note
Wenn Sie das Sternchen in einem searchPattern Sternchen wie "*.txt" verwenden, wirkt sich die Anzahl der Zeichen in der angegebenen Erweiterung auf die Suche wie folgt aus:
- Wenn die angegebene Erweiterung genau drei Zeichen lang ist, gibt die Methode Dateien mit Erweiterungen zurück, die mit der angegebenen Erweiterung beginnen. Beispielsweise gibt "*.xls" sowohl "book.xls" als auch "book.xlsx" zurück.
- In allen anderen Fällen gibt die Methode Dateien zurück, die exakt mit der angegebenen Erweiterung übereinstimmen. Beispielsweise gibt "*.ai" "file.ai" zurück, aber nicht "file.aif".
Wenn Sie das Fragezeichen-Wildcardzeichen verwenden, gibt diese Methode nur Dateien zurück, die der angegebenen Dateierweiterung entsprechen. Wenn Sie beispielsweise zwei Dateien haben, "file1.txt" und "file1.txtother", in einem Verzeichnis, ein Suchmuster von "Datei?.txt" gibt nur die erste Datei zurück, während ein Suchmuster von "file*.txt" beide Dateien zurückgibt.
Die EnumerateFileSystemEntries Methoden GetFileSystemEntries unterscheiden sich wie folgt: Bei Verwendung EnumerateFileSystemEntrieskönnen Sie mit der Aufzählung der Auflistung von Einträgen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Bei Verwendung GetFileSystemEntriesmüssen Sie warten, bis das gesamte Array von Einträgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, EnumerateFileSystemEntries wenn Sie mit vielen Dateien und Verzeichnissen arbeiten.
Sie können relative Pfadinformationen mit dem path Parameter angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert, das Sie mithilfe der GetCurrentDirectory Methode bestimmen können.