Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1840 | Besucher online: 18
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Explorer für Laufwerke


Autor: Volker Steitz
Sprache: VB.NET
Bewertung:
7.86 (5 votes)
Anzahl der Aufrufe: 10043
  
Kick it on dotnet-kicks.de  

Beschreibung:

Eine schnelle übersicht über alle Laufwerke auf dem System

Abgelegt unter: Drives, HDD, Laufwerk, Festplatten.



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Volker Steitz schrieb am:  21.12.2006 00:40:36

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


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.