Benutzer mit den meisten Antworten
Festplatten erkennen und ausgeben

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...
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
- Bearbeitet Stefan FalzModerator Dienstag, 20. September 2011 12:26
- Als Antwort markiert as_1985 Dienstag, 20. September 2011 12:38
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 dieeinzelnen Werte überprüft?Vielleicht kommst du ja dann selbst dahinter wo es klemmt.Thomas
-
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
-
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
-
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? -
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
- Bearbeitet Stefan FalzModerator Dienstag, 20. September 2011 12:26
- Als Antwort markiert as_1985 Dienstag, 20. September 2011 12:38