Directory.GetDirectories Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar namnen på underkataloger som uppfyller angivna villkor.
Överlagringar
| Name | Description |
|---|---|
| GetDirectories(String, String, SearchOption) |
Returnerar namnen på de underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen och söker eventuellt i underkataloger. |
| GetDirectories(String, String, EnumerationOptions) |
Returnerar namnen på underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret och uppräkningsalternativen i den angivna katalogen. |
| GetDirectories(String, String) |
Returnerar namnen på underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen. |
| GetDirectories(String) |
Returnerar namnen på underkataloger (inklusive deras sökvägar) i den angivna katalogen. |
GetDirectories(String, String, SearchOption)
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
Returnerar namnen på de underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen och söker eventuellt i underkataloger.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetDirectories : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, searchOption As SearchOption) As String()
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
- searchPattern
- String
Söksträngen som ska matchas mot namnen på underkataloger i path. Den här parametern kan innehålla en kombination av giltiga literaltecken och jokertecken, men den stöder inte reguljära uttryck.
- searchOption
- SearchOption
Ett av uppräkningsvärdena som anger om sökåtgärden ska innehålla alla underkataloger eller endast den aktuella katalogen.
Returer
En matris med fullständiga namn (inklusive sökvägar) för de underkataloger som matchar de angivna kriterierna eller en tom matris om inga kataloger hittas.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
-eller-
searchPattern innehåller inget giltigt mönster.
path eller searchPattern är null.
searchOption är inte ett giltigt SearchOption värde.
Anroparen har inte den behörighet som krävs.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
path är ett filnamn.
-eller-
Filen eller katalogen är skadad och oläslig (exempel: ogiltig första allokeringsenhet för en FAT32-partition).
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Exempel
I följande exempel räknas antalet kataloger som börjar med den angivna bokstaven i en sökväg. Endast katalogen på den översta nivån genomsöks.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
string[] dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly);
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
let dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly)
printfn $"The number of directories starting with p is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
Dim dirs As String() = Directory.GetDirectories("c:\", "p*", SearchOption.TopDirectoryOnly)
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Kommentarer
Parametern path kan ange relativ eller absolut sökvägsinformation och är inte skiftlägeskänslig. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.
searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.
| Jokerteckensspecificerare | Matcher |
|---|---|
| * (asterisk) | Noll eller fler tecken i den positionen. |
| ? (frågetecken) | Exakt ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen searchPattern "*t" söker till exempel efter alla namn som path slutar med bokstaven "t". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
searchPattern kan inte sluta i två perioder ("..") eller innehålla två punkter ("..") följt av DirectorySeparatorChar eller AltDirectorySeparatorChar, och kan inte heller innehålla ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars av metoden .
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.
Se även
- GetCurrentDirectory()
- Fil- och ström-I/O
- Anvisningar: Läsa text från en fil
- Anvisningar: Skriva text till en fil
Gäller för
GetDirectories(String, String, EnumerationOptions)
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
Returnerar namnen på underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret och uppräkningsalternativen i den angivna katalogen.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetDirectories : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As String()
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
- searchPattern
- String
Söksträngen som ska matchas mot namnen på underkataloger i path. Den här parametern kan innehålla en kombination av giltiga literaltecken och jokertecken, men den stöder inte reguljära uttryck.
- enumerationOptions
- EnumerationOptions
Ett objekt som beskriver den sök- och uppräkningskonfiguration som ska användas.
Returer
En matris med de fullständiga namnen (inklusive sökvägar) för de underkataloger som matchar sökmönstret och uppräkningsalternativen i den angivna katalogen eller en tom matris om inga kataloger hittas.
Undantag
Anroparen har inte den behörighet som krävs.
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars()av .
-eller-
searchPattern innehåller inget giltigt mönster.
path eller searchPattern är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
path är ett filnamn.
-eller-
Filen eller katalogen är skadad och oläslig (exempel: ogiltig första allokeringsenhet för en FAT32-partition).
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Kommentarer
Den här metoden returnerar alla underkataloger direkt under den angivna katalogen som matchar det angivna sökmönstret. Om den angivna katalogen inte har några underkataloger, eller om inga underkataloger matchar parametern searchPattern , returnerar den här metoden en tom matris. Endast den översta katalogen genomsöks. Om du också vill söka i underkatalogerna använder du GetDirectories(String, String, SearchOption) metoden och anger AllDirectories i parametern searchOption .
searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.
| Jokerteckensspecificerare | Matcher |
|---|---|
| * (asterisk) | Noll eller fler tecken i den positionen. |
| ? (frågetecken) | Exakt ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen searchPattern "*t" söker till exempel efter alla namn som path slutar med bokstaven "t". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
searchPattern kan inte sluta i två perioder ("..") eller innehålla två punkter ("..") följt av DirectorySeparatorChar eller AltDirectorySeparatorChar, och kan inte heller innehålla ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars av metoden .
Parametern path kan ange relativ eller absolut sökvägsinformation och är inte skiftlägeskänslig. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.
Gäller för
GetDirectories(String, String)
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
Returnerar namnen på underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern);
public static string[] GetDirectories(string path, string searchPattern);
static member GetDirectories : string * string -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String) As String()
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
- searchPattern
- String
Söksträngen som ska matchas mot namnen på underkataloger i path. Den här parametern kan innehålla en kombination av giltiga literaltecken och jokertecken, men den stöder inte reguljära uttryck.
Returer
En matris med de fullständiga namnen (inklusive sökvägar) för de underkataloger som matchar sökmönstret i den angivna katalogen eller en tom matris om inga kataloger hittas.
Undantag
Anroparen har inte den behörighet som krävs.
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars()av .
-eller-
searchPattern innehåller inget giltigt mönster.
path eller searchPattern är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
path är ett filnamn.
-eller-
Filen eller katalogen är skadad och oläslig (exempel: ogiltig första allokeringsenhet för en FAT32-partition).
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Exempel
I följande exempel räknas antalet kataloger i en sökväg som börjar med den angivna bokstaven.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Only get subdirectories that begin with the letter "p."
string[] dirs = Directory.GetDirectories(@"c:\", "p*");
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
// Only get subdirectories that begin with the letter "p."
let dirs = Directory.GetDirectories(@"c:\", "p*")
printfn $"The number of directories starting with p is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
' Only get subdirectories that begin with the letter "p."
Dim dirs As String() = Directory.GetDirectories("c:\", "p*")
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Kommentarer
Den här metoden returnerar alla underkataloger direkt under den angivna katalogen som matchar det angivna sökmönstret. Om den angivna katalogen inte har några underkataloger, eller om inga underkataloger matchar parametern searchPattern , returnerar den här metoden en tom matris. Endast den översta katalogen genomsöks. Om du också vill söka i underkatalogerna använder du GetDirectories(String, String, SearchOption) metoden och anger AllDirectories i parametern searchOption .
searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.
| Jokerteckensspecificerare | Matcher |
|---|---|
| * (asterisk) | Noll eller fler tecken i den positionen. |
| ? (frågetecken) | Exakt ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen searchPattern "*t" söker till exempel efter alla namn som path slutar med bokstaven "t". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
searchPattern kan inte sluta i två perioder ("..") eller innehålla två punkter ("..") följt av DirectorySeparatorChar eller AltDirectorySeparatorChar, och kan inte heller innehålla ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars av metoden .
Parametern path kan ange relativ eller absolut sökvägsinformation och är inte skiftlägeskänslig. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.
Se även
- GetCurrentDirectory()
- Fil- och ström-I/O
- Anvisningar: Läsa text från en fil
- Anvisningar: Skriva text till en fil
Gäller för
GetDirectories(String)
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
- Källa:
- Directory.cs
Returnerar namnen på underkataloger (inklusive deras sökvägar) i den angivna katalogen.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path);
public static string[] GetDirectories(string path);
static member GetDirectories : string -> string[]
Public Shared Function GetDirectories (path As String) As String()
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
Returer
En matris med de fullständiga namnen (inklusive sökvägar) för underkataloger i den angivna sökvägen eller en tom matris om inga kataloger hittas.
Undantag
Anroparen har inte den behörighet som krävs.
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
path är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
path är ett filnamn.
-eller-
Filen eller katalogen är skadad och oläslig (exempel: ogiltig första allokeringsenhet för en FAT32-partition).
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Exempel
I följande exempel tas en matris med fil- eller katalognamn på kommandoraden, avgör vilken typ av namn den är och bearbetar den på rätt sätt.
// For Directory.GetFiles and Directory.GetDirectories
// For File.Exists, Directory.Exists
using System;
using System.IO;
using System.Collections;
public class RecursiveFileProcessor
{
public static void Main(string[] args)
{
foreach(string path in args)
{
if(File.Exists(path))
{
// This path is a file
ProcessFile(path);
}
else if(Directory.Exists(path))
{
// This path is a directory
ProcessDirectory(path);
}
else
{
Console.WriteLine("{0} is not a valid file or directory.", path);
}
}
}
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
public static void ProcessDirectory(string targetDirectory)
{
// Process the list of files found in the directory.
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
ProcessFile(fileName);
// Recurse into subdirectories of this directory.
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory);
}
// Insert logic for processing found files here.
public static void ProcessFile(string path)
{
Console.WriteLine("Processed file '{0}'.", path);
}
}
module RecursiveFileProcessor
open System.IO
// Insert logic for processing found files here.
let processFile path =
printfn $"Processed file '%s{path}'."
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
let rec processDirectory targetDirectory =
// Process the list of files found in the directory.
let fileEntries = Directory.GetFiles targetDirectory
for fileName in fileEntries do
processFile fileName
// Recurse into subdirectories of this directory.
let subdirectoryEntries = Directory.GetDirectories targetDirectory
for subdirectory in subdirectoryEntries do
processDirectory subdirectory
[<EntryPoint>]
let main args =
for path in args do
if File.Exists path then
// This path is a file
processFile path
elif Directory.Exists path then
// This path is a directory
processDirectory path
else
printfn $"{path} is not a valid file or directory."
0
' For Directory.GetFiles and Directory.GetDirectories
' For File.Exists, Directory.Exists
Imports System.IO
Imports System.Collections
Public Class RecursiveFileProcessor
Public Overloads Shared Sub Main(ByVal args() As String)
Dim path As String
For Each path In args
If File.Exists(path) Then
' This path is a file.
ProcessFile(path)
Else
If Directory.Exists(path) Then
' This path is a directory.
ProcessDirectory(path)
Else
Console.WriteLine("{0} is not a valid file or directory.", path)
End If
End If
Next path
End Sub
' Process all files in the directory passed in, recurse on any directories
' that are found, and process the files they contain.
Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
' Process the list of files found in the directory.
Dim fileName As String
For Each fileName In fileEntries
ProcessFile(fileName)
Next fileName
Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
' Recurse into subdirectories of this directory.
Dim subdirectory As String
For Each subdirectory In subdirectoryEntries
ProcessDirectory(subdirectory)
Next subdirectory
End Sub
' Insert logic for processing found files here.
Public Shared Sub ProcessFile(ByVal path As String)
Console.WriteLine("Processed file '{0}'.", path)
End Sub
End Class
Kommentarer
Den här metoden är identisk GetDirectories(String, String) med med den asterisk (*) som anges som sökmönster, så den returnerar alla underkataloger. Om du behöver söka i underkataloger använder GetDirectories(String, String, SearchOption) du metoden som gör att du kan ange en sökning i underkataloger med parametern searchOption .
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
Parametern path kan ange relativ eller absolut sökvägsinformation. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.
Namnen som returneras av den här metoden är prefixet med kataloginformationen som anges i path.
Parameterns path skiftlägeskänslighet motsvarar det filsystem där koden körs. Det är till exempel skiftlägeskänsligt på NTFS (standard Windows filsystem) och skiftlägeskänsligt på Linux-filsystem.
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.
Se även
- GetCurrentDirectory()
- Fil- och ström-I/O
- Anvisningar: Läsa text från en fil
- Anvisningar: Skriva text till en fil