Tipps und Tricks rund um .NET und Visual Studio

Füllstand der Laufwerke auflisten
Kommentare

Dr. Holger Schwichtenberg (MVP) und FH-Prof. Manfred Steyer teilen in der Kolumne „.NETversum“ ihr Expertenwissen rund um .NET-Tools und WPF mit.

Bevor eine Anwendung Daten auf ein Medium speichert, sollte die Anwendung prüfen, ob dort genug Platz vorhanden ist. Ein System.IO.DriveInfo-Objekt bietet dazu die Eigenschaften TotalSize und AvailableFreeSpace. Beim Zugriff auf ein einzelnes Laufwerk kann der Laufwerkbuchstabe wahlweise mit („C:“) oder ohne Doppelpunkt („C“) angegeben werden:

/// 
/// Liefert den Füllstand eines lokalen Laufwerks mit FCL-Klassen
/// 
public static void GetFreeSpaceInfoFCL(string Laufwerksbuchstabe)
{
  var drive = new System.IO.DriveInfo(Laufwerksbuchstabe);
  Console.WriteLine("{0} von {1} Bytes frei", drive.AvailableFreeSpace, drive.TotalSize);
}

DriveInfo-Objekte gibt es aber nur für lokale Laufwerke. Wenn man den Füllstand eines entfernten Laufwerks (z. B. auf einem Server) prüfen will, dann benötigt man die Klasse Win32_LogicalDisk aus der Windows Management Instrumentation (WMI) und dafür eine Referenz auf die System.Management.dll.

Im WMI-Pfad legt man den anzusprechenden Computer und das Laufwerk fest. Das Laufwerk muss dabei immer mit Doppelpunkt („C:“) festgelegt werden. Die Eigenschaften heißen hier Size und FreeSpace:

/// 
/// Liefert den Füllstand eines lokalen oder entfernten Laufwerks mit WMI
/// 
public static void GetFreeSpaceInfoWMI(string Laufwerksbuchstabe, string Computer = ".")
{
  ManagementObject drive =
new ManagementObject(@"\" + Computer + @"rootcimv2:Win32_LogicalDisk.DeviceID='" + Laufwerks-buchstabe + "'");

  var size = Convert.ToInt64(drive.Properties["Size"].Value);
  var freeSize = Convert.ToInt64(drive.Properties["FreeSpace"].Value);
 
  Console.WriteLine("{0} von {1} Bytes frei", freeSize, size);
}
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -