GetFileSystemInfos Methode (String)
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern

DirectoryInfo.GetFileSystemInfos-Methode (String)

 

Ruft ein Array von stark typisierten FileSystemInfoObjekte darstellt, die Dateien und Unterverzeichnisse, die die angegebenen Suchkriterien entsprechen.

Namespace:   System.IO
Assembly:  mscorlib (in mscorlib.dll)

public FileSystemInfo[] GetFileSystemInfos(
	string searchPattern
)

Parameter

                             searchPattern                         

Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen und Dateien auf Übereinstimmungen.Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?, siehe Hinweise) enthalten, unterstützt jedoch keine regulären Ausdrücke.Das Standardmuster ist "*", wobei alle Dateien zurückgegeben werden.

Rückgabewert

Type: System.IO.FileSystemInfo[]

Ein Array von stark typisierten FileSystemInfoObjekte, die den Suchkriterien entsprechen.

Exception Condition
                             T:System.ArgumentException                         

searchPatternenthält mindestens ein ungültiges Zeichen definiert, indem Sie die GetInvalidPathChars-Methode.

                             T:System.ArgumentNullException                         

searchPatternist null.

                             T:System.IO.DirectoryNotFoundException                         

Der angegebene Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).

                             T:System.Security.SecurityException                         

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

searchPattern kann eine Kombination des Literals und Platzhalterzeichen sein, unterstützt aber keine regulären Ausdrücke. Die folgenden Bezeichner für Platzhalter sind in zulässig. searchPattern.

Platzhalter-Spezifizierer

Entsprechungen

* (Sternchen)

NULL oder mehr Zeichen an dieser Stelle.

?(Fragezeichen)

0 (null) oder ein Zeichen an dieser Position.

Zeichen, die nicht den Platzhalter sind Literalzeichen.Z. B. die Zeichenfolge "* t" sucht nach allen Namen in der mit dem Buchstaben "t" enden. ". searchPatterndie Zeichenfolge "s *" sucht alle Namen in pathmit dem Buchstaben "s" beginnen.

Diese Methode ist nicht rekursiv.

Unterverzeichnisse, für die FileSystemInfoObjekte, die von dieser Methode zurückgegebene können für die abgeleitete Klasse umgewandelt werden DirectoryInfo. Verwenden Sie FileAttributeszurückgegebener Wert der FileSystemInfo.AttributesEigenschaft, um zu bestimmen, ob die FileSystemInfoeine Datei oder ein Verzeichnis darstellt.

Platzhalter sind zulässig.Angenommen, die searchPatternZeichenfolge "* t" sucht alle Verzeichnisnamen in pathmit dem Buchstaben "t" enden. searchPatterndie Zeichenfolge "s *" sucht alle Verzeichnisnamen in pathmit dem Buchstaben "s" beginnen.

Die Zeichenfolge ".." kann nur in verwendet. searchPatternWenn es als Teil einer gültigen Verzeichnisnamen an, z. B. in den Namen des Verzeichnisses angegeben wird "ein.."b". Es kann nicht verwendet werden, die Directory-Hierarchie nach oben zu verschieben.Es sind keine Dateien oder Verzeichnisse bzw. keine Dateien oder Verzeichnisse, entsprechen die searchPatterndie Zeichenfolge, in der DirectoryInfo, diese Methode ein leeres Array zurück.

Diese Methode füllt die Werte der folgenden FileSystemInfoEigenschaften:

Im folgenden Beispiel wird die Dateien und Verzeichnisse, die das angegebenen Suchmuster entsprechen.

using System;
using System.IO;

class DirectoryFileCount
{

    static long files = 0;
    static long directories = 0;


    static void Main()
    {
        try
        {
            Console.WriteLine("Enter the path to a directory:");

            string directory = Console.ReadLine();

            Console.WriteLine("Enter a search string (for example *p*):");

            string searchString = Console.ReadLine();

            // Create a new DirectoryInfo object.
            DirectoryInfo dir = new DirectoryInfo(directory);

            if (!dir.Exists)
            {
                throw new DirectoryNotFoundException("The directory does not exist.");
            }

            // Call the GetFileSystemInfos method.
            FileSystemInfo[] infos = dir.GetFileSystemInfos(searchString);

            Console.WriteLine("Working...");

            // Pass the result to the ListDirectoriesAndFiles
            // method defined below.
            ListDirectoriesAndFiles(infos, searchString);

            // Display the results to the console. 
            Console.WriteLine("Directories: {0}", directories);
            Console.WriteLine("Files: {0}", files);

        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
        finally
        {

            Console.ReadLine();
        }
    }

    static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo, string SearchString)
    {
        // Check the parameters.
        if (FSInfo == null)
        {
            throw new ArgumentNullException("FSInfo");
        }
        if (SearchString == null || SearchString.Length == 0)
        {
            throw new ArgumentNullException("SearchString");
        }

        // Iterate through each item.
        foreach (FileSystemInfo i in FSInfo)
        {
            // Check to see if this is a DirectoryInfo object.
            if (i is DirectoryInfo)
            {
                // Add one to the directory count.
                directories++;

                // Cast the object to a DirectoryInfo object.
                DirectoryInfo dInfo = (DirectoryInfo)i;

                // Iterate through all sub-directories.
                ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString);
            }
            // Check to see if this is a FileInfo object.
            else if (i is FileInfo)
            {
                // Add one to the file count.
                files++;

            }

        }
    }
}

                             T:System.Security.Permissions.FileIOPermission                         

zum Lesen aus Dateien und Verzeichnissen und für den Zugriff auf den Pfad.Zugeordnete Enumerationen: FileIOPermissionAccess.Read, FileIOPermissionAccess.PathDiscovery

Universal Windows Platform
Verfügbar seit 10
.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen:
© 2016 Microsoft