Gewusst wie: Erstellen einer Verzeichnisauflistung

Im folgenden Codebeispiel wird veranschaulicht, wie die E/A-Klassen zum Erstellen einer Auflistung aller Dateien mit der Erweiterung ".exe" in einem Verzeichnis verwendet werden.

Beispiel

Imports System
Imports System.IO

Public Class DirectoryLister
    Public Shared Sub Main(args() As String)
        Dim path As String = Environment.CurrentDirectory
        If args.Length > 0 Then
            If Directory.Exists(args(0)) Then
                path = args(0)
            Else
                Console.WriteLine("{0} not found; using current directory:",
                    args(0))
            End If
        End If
        Dim dir As New DirectoryInfo(path)
        For Each f As FileInfo In dir.GetFiles("*.exe")
            Dim name As String = f.Name
            Dim size As Long = f.Length
            Dim creationTime As DateTime = f.CreationTime
            Console.WriteLine("{0,-12:N0} {1,-20:g} {2}", size,
                creationTime, name)
        Next f
    End Sub
End Class
using System;
using System.IO;

public class DirectoryLister
{
    public static void Main(String[] args)
    {
        string path = Environment.CurrentDirectory;
        if (args.Length > 0)
        {
            if (Directory.Exists(args[0]))
            {
                path = args[0];
            }
            else
            {
                Console.WriteLine("{0} not found; using current directory:",
                    args[0]);
            }
        }
        DirectoryInfo dir = new DirectoryInfo(path);
        foreach (FileInfo f in dir.GetFiles("*.exe"))
        {
            string name = f.Name;
            long size = f.Length;
            DateTime creationTime = f.CreationTime;
            Console.WriteLine("{0,-12:N0} {1,-20:g} {2}", size,
                creationTime, name);
        }
    }
}
using namespace System;
using namespace System::IO;

public ref class DirectoryLister
{
public:
    static void Main(array<String^>^ args)
    {
        String^ path = Environment::CurrentDirectory;
        if (args->Length > 0)
        {
            if (Directory::Exists(args[0]))
            {
                path = args[0];
            }
            else
            {
                Console::WriteLine("{0} not found; using current directory:",
                    args[0]);
            }
        }
        DirectoryInfo^ dir = gcnew DirectoryInfo(path);
        for each (FileInfo^ f in dir->GetFiles("*.exe"))
        {
            String^ name = f->Name;
            long size = f->Length;
            DateTime^ creationTime = f->CreationTime;
            Console::WriteLine("{0,-12:N0} {1,-20:g} {2}", size,
                creationTime, name);
        }
    }
};

int main()
{
    DirectoryLister::Main(Environment::GetCommandLineArgs());
}

Robuste Programmierung

In diesem Beispiel ist DirectoryInfo das aktuelle Verzeichnis, gekennzeichnet durch ("."). Im Code sind alle Dateien des aktuellen Verzeichnisses mit der Erweiterung .exe unter Angabe der zugehörigen Dateigröße, der Erstellungszeit und des Dateinamens aufgelistet. Angenommen, es befinden sich EXE-Dateien auf C:\MyDir im Unterverzeichnis \Bin. Die Ausgabe dieses Codes könnte dann folgendermaßen aussehen:

953          7/20/2000 10:42 AM   C:\MyDir\Bin\paramatt.exe
664          7/27/2000 3:11 PM    C:\MyDir\Bin\tst.exe
403          8/8/2000 10:25 AM    C:\MyDir\Bin\dirlist.exe

Eine Liste von Dateien in einem anderen Verzeichnis, z. B. C:\root, erhalten Sie, in dem Sie das Argument "C:\" an die durch Kompilieren dieses Codes generierte ausführbare Datei übergeben, also beispielsweise "testApplication.exe C:\".

HinweisHinweis

Benutzer von Visual Basic können auch die von der FileSystem-Klasse für Datei-E/A bereitgestellten Methoden und Eigenschaften verwenden.

Siehe auch

Aufgaben

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Gewusst wie: Öffnen und Anfügen an eine Protokolldatei

Gewusst wie: Lesen aus einer Textdatei

Gewusst wie: Schreiben von Text in eine Datei

Gewusst wie: Lesen von Zeichen aus einer Zeichenfolge

Gewusst wie: Schreiben von Zeichen in eine Zeichenfolge

Referenz

DirectoryInfo

CreationTime

FullName

FileInfo.Length

DirectoryInfo.GetFiles

Konzepte

Grundlegende Datei-E/A