Das .NET Framework bietet zwar die Möglichkeit, die logischen Laufwerke zu ermitteln, ein direkter Weg zum Bestimmen des Typs eines Laufwerks fehlt allerdings.
In der WMI findet man eine Antwort auf die Frage, welchen Typ ein Laufwerk hat: Die Klasse Win32_LogicalDisk repräsentiert ein logisches Laufwerk und stellt zahlreiche Informationen darüber bereit. Unter diesen Informationen findet sich auch eine Eigenschaft DriveType, die den Typ angibt. Die im Folgenden angegebene Funktionsprozedur GetDriveType ermittelt über WMI den Typ eines Laufwerks und gibt diesen in Form einer Konstanten aus der Aufzählung DriveType zurück. Damit die oben angegebene Funktionsprozedur funktioniert, muß ein Verweis auf die System.Management.dll existieren und der Namensraum System.Management importiert werden.
Die Methode GetLogicalDrives gibt ein Feld von Zeichenfolgen zurück, die die bekannten logischen Laufwerke repräsentieren. Für alle bekannten Laufwerke wird der Typ ermittelt und die Informationen in Form von Meldungen ausgegeben:
Alternativ könnte man den Typ eines Laufwerks über einen PInvoke-Aufruf der Windows-API-Funktion GetDriveType.
Ermitteln der Pfade besonderer Ordner
Das .NET Framework stellt zu Ermitteln der Pfade besonderer Ordner die Methode GetFolderPath in der Klasse Environment bereit. Trotz Erweiterung der Auflistung SpecialFolder im .NET Framework 2.0 kann damit nur ein kleiner Teil der Pfade bestimmt werden. Die im Folgenden angegebene Klasse SpecialFolders gibt in ihrer Eigenschaft Folder den Pfad des gewünschten Ordners zurück. Optional kann der Ordner erstellt werden, sollte er noch nicht existieren. Dieses Beispiel ist eine Übersetzung eines Classic-Visual-Basic-Beispiels Besondere Ordner von Thorsten Dörfler [MVP]:
Nachstehender Code gibt Namen und Pfade aller bekannten Spezialordner aus:
Erstellen einer sortierten Liste der Dateien in einem Ordner
Mit der Methode Directory.GetFiles bietet das .NET Framework zwar eine Möglichkeit, die Namen der Dateien innerhalb eines Ordners zu ermitteln und nach einer Dateinamenserweiterung zu filtern. Jedoch bietet diese Methode keine Unterstützung für das Sortieren der Dateinamen nach einer Eigenschaft der Dateien. Zu diesem Zweck kann die Methode Array.Sort benutzt werden, der neben dem zu sortierenden Array auch ein Vergleicher, also eine Klasse, welche die Schnittstelle IComparer implementiert, übergeben werden kann, der dazu verwendet wird, die Reihenfolge zweier Dateien zu bestimmen.
Im folgenden Beispiel werden Dateien nach dem Zeitpunkt des letzten Zugriffs sortiert. Dazu wird die Differenz zwischen den Dateizeiten zweier Dateien bestimmt. Da der Rückgabewert der Methode IComparer.Compare den Datentyp Integer besitzt, die Differenz der Dateizeiten jedoch den Datentyp Long, wird das Vorzeichen der Differenz mittels Math.Sign ermittelt und zurückgegeben. Damit das folgende Beispiel funktioniert, muß der Namensraum System.IO importiert werden:
Folgendes Listing enthält ein Beispiel zur Verwendung der vorgestellten Klasse LastWriteTimeComparer. Dabei werden die Namen der Dateien eines Ordners ermittelt und anhand des Datums des letzten Zugriffs sortiert und anschließend in einem ListBox-Steuerelement ausgegeben: