Montag, 5. Juli 2010

Freien Speicherplatz und Gesamtgröße eines Laufwerks herausfinden

Die Laufwerke des Computers lassen sich in C# wie im Post Partitionen aufzählen beschrieben mit der Klasse DriveInfo aufzählen. Diese Klasse stellt außerdem weitere Laufwerkinformationen zur Verfügung, wie zum Beispiel den freien Speicherplatz und die Gesamtgröße des Laufwerks.
Das folgende Beispielprogramm liest alle Laufwerke ein, iteriert über diese, sucht so das angegebene Laufwerk und zeigt anschließend Speicherplatzinformationen zu diesem an (System.IO muss mittels using eingebunden sein):

DriveInfo[] Drives = DriveInfo.GetDrives(); // alle Laufwerke auslesen

foreach (DriveInfo d in Drives)
{
if (d.Name == "C:\\") // Größe von C (durch gewünschtes Laufwerk ersetzen) ausgeben
Console.WriteLine((d.TotalFreeSpace / (1024 * 1024 * 1024)) + " GB von insgesamt " + (d.TotalSize / (1024 * 1024 * 1024)) + " GB frei.");
}

Die Klasse DriveInfo besitzt einerseits die hier verwendete Eigenschaft TotalFreeSpace und andererseits die Eigenschaft AvailableFreeSpace. Der Unterschied besteht darin, dass erste den gesamten verfügbaren freien Speicherplatz auf dem Laufwerk angibt, und zweite nur den verfügbaren freien Speicherplatz, den der aktuelle Benutzer zur Verfügung hat.

Kommentare:

  1. Wie kann ich diese Information in einen string bekommen?

    AntwortenLöschen
  2. Wie, welche Information? Meinst du den freien Speicherplatz?
    In dem Fall einfach "Console.WriteLine" z.B. durch "String FreierPlatz = " ersetzen.
    Der Code könnte z.B. aussehen:

    DriveInfo[] Drives = DriveInfo.GetDrives(); // alle Laufwerke auslesen

    String FreierSpeicherplatz = "Error";
    foreach (DriveInfo d in Drives)
    {
    if (d.Name == "C:\\") // Größe von C (durch gewünschtes Laufwerk ersetzen) ausgeben
    FreierSpeicherplatz = ((d.TotalFreeSpace / (1024 * 1024 * 1024)) + " GB von insgesamt " + (d.TotalSize / (1024 * 1024 * 1024)) + " GB frei.");
    }

    AntwortenLöschen
  3. Sehr schön geschrieben:)

    AntwortenLöschen