Sprache: VB
Eine schnelle übersicht über alle Laufwerke auf dem System
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Zuerst muss ein Listview control erstellt und auf dem aktuellen Formular platziert werden.
Dim lv As New ListView
lv.Dock = DockStyle.Fill
Me.Controls.Add(lv)
'Nun wird die Listview konfiguriert.
With lv
'jetzt werden die Spalten und deren Beschriftungen zu dem Listview hinzugefügt.
'die Groesse spielt keine Rolle, da die groesse am Schluss der Function automatisch
'angepasst wird
.Columns.Add("Name", 200, HorizontalAlignment.Left)
.Columns.Add("Typ", 150, HorizontalAlignment.Left)
.Columns.Add("Groesse", 100, HorizontalAlignment.Right)
.Columns.Add("Freier Speicher", 100, HorizontalAlignment.Right)
.Columns.Add("Format", 100, HorizontalAlignment.Right)
.Columns.Add("Root", 100, HorizontalAlignment.Left)
'Die Spalten können währen der Laufzeit neu angeordnet werden
.AllowColumnReorder = True
'Detailansicht wählen
.View = View.Details
End With
'Gruppe "Hard Disk Drives" erstellen und hinzufügen
Dim hddGroup As New ListViewGroup("Hard Disk Drives", HorizontalAlignment.Left)
hddGroup.Name = "HDDGroup"
'Gruppe "Removable Storage" erstellen und Hinzufügen
Dim removableGroup As New ListViewGroup("Devices with Removable Storage", HorizontalAlignment.Left)
removableGroup.Name = "RemovableStorage"
'Nun werden die erstellen gruppen dem Listview hinzugefügt
lv.Groups.Add(hddGroup)
lv.Groups.Add(removableGroup)
'jetzt werden die Inhalte erstell
Dim li As ListViewItem
Dim volumeLabel As String = String.Empty
'EEs werden nun alle verfügbaren Lauf durchlaufen und entpsrechend zugeordnet
For Each driveName As System.IO.DriveInfo In My.Computer.FileSystem.Drives
li = New ListViewItem
If driveName.IsReady = False OrElse driveName.VolumeLabel.Length = 0 _
Then volumeLabel = driveName.DriveType.ToString Else volumeLabel = driveName.VolumeLabel
li.Text = volumeLabel & " (" & driveName.Name.Substring(0, 2) & ")"
li.SubItems.Add(driveName.DriveType.ToString)
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(FileSizer(driveName.TotalSize.ToString))
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(FileSizer(driveName.TotalFreeSpace.ToString))
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(driveName.DriveFormat.ToString)
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(driveName.RootDirectory.ToString)
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
'Type der Laufwerke erstellen und in die Gruppen zuordnen
Select Case driveName.DriveType
Case IO.DriveType.Fixed
li.Group = hddGroup
Case IO.DriveType.Removable, IO.DriveType.CDRom
li.Group = removableGroup
End Select
lv.Items.Add(li)
Next
'Größe der Spalten anpassen
For Each locColumn As ColumnHeader In lv.Columns
locColumn.Width = -2
Next
End Sub
'Rechnet in MB ... um
Private Function FileSizer(ByVal varSize As String) As String
Dim FileSize As Double
Dim size As String = " B"
FileSize = varSize
If FileSize / 1024 > 1 Then
FileSize /= 1024
size = " KB"
If FileSize / 1024 > 1 Then
FileSize /= 1024
size = " MB"
If FileSize / 1024 > 1 Then
FileSize /= 1024
size = " GB"
End If
End If
End If
FileSizer = Format(FileSize, "###0.0") & " " & size
Return FileSizer
End Function
End Class
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Zuerst muss ein Listview control erstellt und auf dem aktuellen Formular platziert werden.
Dim lv As New ListView
lv.Dock = DockStyle.Fill
Me.Controls.Add(lv)
'Nun wird die Listview konfiguriert.
With lv
'jetzt werden die Spalten und deren Beschriftungen zu dem Listview hinzugefügt.
'die Groesse spielt keine Rolle, da die groesse am Schluss der Function automatisch
'angepasst wird
.Columns.Add("Name", 200, HorizontalAlignment.Left)
.Columns.Add("Typ", 150, HorizontalAlignment.Left)
.Columns.Add("Groesse", 100, HorizontalAlignment.Right)
.Columns.Add("Freier Speicher", 100, HorizontalAlignment.Right)
.Columns.Add("Format", 100, HorizontalAlignment.Right)
.Columns.Add("Root", 100, HorizontalAlignment.Left)
'Die Spalten können währen der Laufzeit neu angeordnet werden
.AllowColumnReorder = True
'Detailansicht wählen
.View = View.Details
End With
'Gruppe "Hard Disk Drives" erstellen und hinzufügen
Dim hddGroup As New ListViewGroup("Hard Disk Drives", HorizontalAlignment.Left)
hddGroup.Name = "HDDGroup"
'Gruppe "Removable Storage" erstellen und Hinzufügen
Dim removableGroup As New ListViewGroup("Devices with Removable Storage", HorizontalAlignment.Left)
removableGroup.Name = "RemovableStorage"
'Nun werden die erstellen gruppen dem Listview hinzugefügt
lv.Groups.Add(hddGroup)
lv.Groups.Add(removableGroup)
'jetzt werden die Inhalte erstell
Dim li As ListViewItem
Dim volumeLabel As String = String.Empty
'EEs werden nun alle verfügbaren Lauf durchlaufen und entpsrechend zugeordnet
For Each driveName As System.IO.DriveInfo In My.Computer.FileSystem.Drives
li = New ListViewItem
If driveName.IsReady = False OrElse driveName.VolumeLabel.Length = 0 _
Then volumeLabel = driveName.DriveType.ToString Else volumeLabel = driveName.VolumeLabel
li.Text = volumeLabel & " (" & driveName.Name.Substring(0, 2) & ")"
li.SubItems.Add(driveName.DriveType.ToString)
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(FileSizer(driveName.TotalSize.ToString))
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(FileSizer(driveName.TotalFreeSpace.ToString))
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(driveName.DriveFormat.ToString)
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add(driveName.RootDirectory.ToString)
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add("0") Else li.SubItems.Add("n.a.")
End Try
'Type der Laufwerke erstellen und in die Gruppen zuordnen
Select Case driveName.DriveType
Case IO.DriveType.Fixed
li.Group = hddGroup
Case IO.DriveType.Removable, IO.DriveType.CDRom
li.Group = removableGroup
End Select
lv.Items.Add(li)
Next
'Größe der Spalten anpassen
For Each locColumn As ColumnHeader In lv.Columns
locColumn.Width = -2
Next
End Sub
'Rechnet in MB ... um
Private Function FileSizer(ByVal varSize As String) As String
Dim FileSize As Double
Dim size As String = " B"
FileSize = varSize
If FileSize / 1024 > 1 Then
FileSize /= 1024
size = " KB"
If FileSize / 1024 > 1 Then
FileSize /= 1024
size = " MB"
If FileSize / 1024 > 1 Then
FileSize /= 1024
size = " GB"
End If
End If
End If
FileSizer = Format(FileSize, "###0.0") & " " & size
Return FileSizer
End Function
End Class
Alte URL:
/snippet/explorer-fuer-laufwerke/390
Der vollständigkeit hier noch die Version mit denrestlichen Laufwerkstypen:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‚Zuerst muss ein Listview control erstellt und auf dem aktuellen Formular platziert werden.
Dim lv As New ListView
lv.Dock = DockStyle.Fill
Me.Controls.Add(lv)
‚Nun wird die Listview konfiguriert.
With lv
‚jetzt werden die Spalten und deren Beschriftungen zu dem Listview hinzugefügt.
‚die Groesse spielt keine Rolle, da die groesse am Schluss der Function automatisch
‚angepasst wird
.Columns.Add(„Name“, 200, HorizontalAlignment.Left)
.Columns.Add(„Typ“, 150, HorizontalAlignment.Left)
.Columns.Add(„Groesse“, 100, HorizontalAlignment.Right)
.Columns.Add(„Freier Speicher“, 100, HorizontalAlignment.Right)
.Columns.Add(„Format“, 100, HorizontalAlignment.Right)
.Columns.Add(„Root“, 100, HorizontalAlignment.Left)
‚Die Spalten können währen der Laufzeit neu angeordnet werden
.AllowColumnReorder = True
‚Detailansicht wählen
.View = View.Details
End With
‚Gruppe „Hard Disk Drives“ erstellen und hinzufügen
Dim hddGroup As New ListViewGroup(„Hard Disk Drives“, HorizontalAlignment.Left)
hddGroup.Name = „HDDGroup“
‚Gruppe „Removable Storage“ erstellen und Hinzufügen
Dim removableGroup As New ListViewGroup(„Devices with Removable Storage“, HorizontalAlignment.Left)
removableGroup.Name = „RemovableStorage“
‚Gruppe „network“ erstellen und Hinzufügen
Dim networkGroup As New ListViewGroup(„Network Storage“, HorizontalAlignment.Left)
networkGroup.Name = „NetworkStorage“
‚Gruppe „Ramdisk“ erstellen und Hinzufügen
Dim RamDiskGroup As New ListViewGroup(„RAM Disk“, HorizontalAlignment.Left)
RamDiskGroup.Name = „RamDiskStorage“
‚Gruppe „Ramdisk“ erstellen und Hinzufügen
Dim NORootGroup As New ListViewGroup(„No Root“, HorizontalAlignment.Left)
NORootGroup.Name = „NoRootStorage“
‚Gruppe „Ramdisk“ erstellen und Hinzufügen
Dim UnknownGroup As New ListViewGroup(„Unknown“, HorizontalAlignment.Left)
UnknownGroup.Name = „UnknownStorage“
‚Nun werden die erstellen gruppen dem Listview hinzugefügt
lv.Groups.Add(hddGroup)
lv.Groups.Add(removableGroup)
lv.Groups.Add(networkGroup)
lv.Groups.Add(RamDiskGroup)
lv.Groups.Add(NORootGroup)
lv.Groups.Add(UnknownGroup)
‚jetzt werden die Inhalte erstell
Dim li As ListViewItem
Dim volumeLabel As String = String.Empty
‚EEs werden nun alle verfügbaren Lauf durchlaufen und entpsrechend zugeordnet
For Each driveName As System.IO.DriveInfo In My.Computer.FileSystem.Drives
li = New ListViewItem
If driveName.IsReady = False OrElse driveName.VolumeLabel.Length = 0 _
Then volumeLabel = driveName.DriveType.ToString Else volumeLabel = driveName.VolumeLabel
li.Text = volumeLabel & “ (“ & driveName.Name.Substring(0, 2) & „)“
li.SubItems.Add(driveName.DriveType.ToString)
Try
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(FileSizer(driveName.TotalSize.ToString))
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(„n.a.“)
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(FileSizer(driveName.TotalFreeSpace.ToString))
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(„n.a.“)
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(driveName.DriveFormat.ToString)
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(„n.a.“)
End Try
Try
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(driveName.RootDirectory.ToString)
Catch ex As Exception
If driveName.IsReady = False Then li.SubItems.Add(„0“) Else li.SubItems.Add(„n.a.“)
End Try
‚Type der Laufwerke erstellen und in die Gruppen zuordnen
Select Case driveName.DriveType
Case IO.DriveType.Fixed
li.Group = hddGroup
Case IO.DriveType.Removable, IO.DriveType.CDRom
li.Group = removableGroup
Case IO.DriveType.Network, IO.DriveType.Network
li.Group = networkGroup
Case IO.DriveType.Ram, IO.DriveType.Ram
li.Group = RamDiskGroup
Case IO.DriveType.NoRootDirectory, IO.DriveType.NoRootDirectory
li.Group = NORootGroup
Case IO.DriveType.Unknown, IO.DriveType.Unknown
li.Group = UnknownGroup
End Select
lv.Items.Add(li)
Next
‚Größe der Spalten anpassen
For Each locColumn As ColumnHeader In lv.Columns
locColumn.Width = -2
Next
End Sub