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:\".
Hinweis |
---|
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