none
Festplatten erkennen und ausgeben RRS feed

  • Frage

  • Ich möchte mir in einem WindowForm, listview meine Platten und dazugehörige Informationen ausgeben lassen.

    mein Quelltext

    //gui.cs
    
    hdd();
    
    private string hdd() 
    {
    System.IO.DriveInfo[] allDrives = System.IO.DrivesInfo.GetDrives();
    foreach (System.IO.DriveInfo d in allDrives)
    {
      ListViewItem ls = new ListViewItem();
      
      ls.Text = d.Name;
      ls.SubItems.Add(d.DriveType.ToString());
      if (d.IsReady == true)
      {
        ls.SubItems.Add(d.VolumeLabel);
        ls.SubItems.Add(d.TotalSize).ToString();
        .....
        ..... 
       }
    listView1.Items.Add(ls)
    }
    return listView1.ToString();
    }
    

    Wo liegt der Fehler? Mir werden nur die laufwerksbuchstaben ausgeben...

    Dienstag, 20. September 2011 09:15

Antworten

  • Hi,

    abgesehen davon, dass dein gezeigter Code an einigen Stellen fehlerhaft ist und so sicherlich nicht läuft, fehlt dir wahrscheinlich nur eines:

      Ein paar Columns in deinem ListView Control.

    Füge mal so viele Column Objekt in die Columns Collection des ListView Controls ein, wie Du Anzeigespalten hast.

    Zusätzlich muss die View Eigenschaft der ListView auf "Details" stehen, damit die Daten angezeigt werden.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Dienstag, 20. September 2011 12:26
    Moderator

Alle Antworten

  • as_1985 wrote:
     
    > Ich möchte mir in einem WindowForm, listview meine Platten und dazugehörige Informationen ausgeben lassen.
    >
    > mein Quelltext
    [...]
    >
    > Wo liegt der Fehler? Mir werden nur die laufwerksbuchstaben ausgeben...
     
    Schonmal mit dem Debugger schritt für schritt durch das Programm und die
    einzelnen Werte überprüft?
     
    Vielleicht kommst du ja dann selbst dahinter wo es klemmt.
     
    Thomas
     
    Dienstag, 20. September 2011 10:02
  • Ja habe ich schon gemacht, mit Breakpoints, mehr als ich davor sagen konnte, weiß ich au nicht.. ich liste mal hier die debug Schritte, nach einem Durchlauf für C:/.

    allDrives => DriveInfo {3} // also hat alle drei Festplatten erkannt

    d => {C:/}

    ls => Text = "C:\\"

    Soweit so gut,

    bei ls.SubItems.Add(d.TotalSize.ToString(); macht er rein garnichts.. zumindest ist nichts erkennbar. Auch bei meinen aderen, wie d.AvailableFreeSpace/1024/1024 passiert nichts.



    • Bearbeitet as_1985 Dienstag, 20. September 2011 10:15
    Dienstag, 20. September 2011 10:14
  • Hallo as_1985,

    Schau Dir mal den folgenden Artikel an. Vielleicht findest Du etwas dass Dir weiter helfen kann.

    Getting Disk Drive Information using WMI and C#

    Grüße,

    Robert

    Dienstag, 20. September 2011 10:40
    Moderator
  • sorry, aber das Hilft mir nicht wirklich. Mein Code dürfte soweit eigentlich funktionieren, diesen Code gibt es auch x-mal im Netz. Habe eigentlich alles richtig gemacht -.-


    Keiner eine Idee, an was es liegen könnte?

    Dienstag, 20. September 2011 11:53
  • Probier doch mal folgendes: Verwende kein ListView, sondern ein DataGridView, behandle das DataError-Event und les die Driveinfos dort einmal ein um zu sehen, was passiert:

                System.IO.DriveInfo[] allDrives = System.IO.DriveInfo.GetDrives();
                dataGridView1.DataSource = allDrives;
    

    Zeigt er die Labels dort an?

    Dienstag, 20. September 2011 12:17
  • Hi,

    abgesehen davon, dass dein gezeigter Code an einigen Stellen fehlerhaft ist und so sicherlich nicht läuft, fehlt dir wahrscheinlich nur eines:

      Ein paar Columns in deinem ListView Control.

    Füge mal so viele Column Objekt in die Columns Collection des ListView Controls ein, wie Du Anzeigespalten hast.

    Zusätzlich muss die View Eigenschaft der ListView auf "Details" stehen, damit die Daten angezeigt werden.

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Dienstag, 20. September 2011 12:26
    Moderator
  • ja genau, ich dachte die colums werden automatisch generiert. Danke
    Dienstag, 20. September 2011 12:38