DirectoryInfo.GetFileSystemInfos-Methode ()

 

Gibt ein Array von stark typisierten FileSystemInfoEinträge, die alle Dateien und Unterverzeichnisse in einem Verzeichnis darstellt.

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

public FileSystemInfo[] GetFileSystemInfos()

Rückgabewert

Type: System.IO.FileSystemInfo[]

Ein Array von stark typisierten FileSystemInfoEinträge.

Exception Condition
                             T:System.IO.DirectoryNotFoundException                         

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

Wenn keine Dateien Verzeichnisse in oder der DirectoryInfo, diese Methode ein leeres Array zurück. 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.

Diese Methode füllt die Werte der folgenden FileSystemInfoEigenschaften:

Im folgenden Beispiel werden die Dateien und Verzeichnisse im angegebenen Verzeichnis gezählt.

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();

            // 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();

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

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

            // 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)
    {
        // Check the FSInfo parameter.
        if (FSInfo == null)
        {
            throw new ArgumentNullException("FSInfo");
        }

        // 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());
            }
            // Check to see if this is a FileInfo object.
            else if (i is FileInfo)
            {
                // Add one to the file count.
                files++;

            }

        }
    }
}

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: