Salve a tutti
Nel Post di oggi vi mostro come utilizzare la classe DriveInfo presente nel namespace System.IO per ricavare le principali informazioni sulle unità disco presenti nel PC, e inserisco queste informazioni in una ListView.
La Classe DriveInfo
Questa classe permette di utilizzare dei metodi,funzioni che sono utili per ricavare le informazioni sulle unità disco (es: spazio disponibile,spazio totale,unità disco,formato..)
Elencare le unità disco
Per elencare le unità disco presenti nel PC bisogna utilizzare un ciclo For Each in questo modo:
dim s as string
for each s in directory.getlogicaldrives
'operazioni
next
Il Codice:
Il codice seguente mostra come ricavare le informazioni sulle unità disco e come inserirle nella nostra ListView (in questo caso la chiamo lista)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lista.BeginUpdate()
lista.Items.Clear()
Dim s As String
' Ciclo che viene eseguito per enumerare tutte le unità disco.
For Each s In Directory.GetLogicalDrives
'Variabili Interne al ciclo
Dim drive As New IO.DriveInfo(s)
Dim spaziodisp As Long
Dim spazio_tot As Long
Dim spazio_occ As Long
'Item del controllo ListView
Dim subit As New ListViewItem(s)
'Gestisco eccezione
Try
'Converto da Byte a MegaByte
spaziodisp = drive.AvailableFreeSpace / 1048576
spazio_tot = drive.TotalSize.ToString / 1048576
'Spazio Occupato
spazio_occ = spazio_tot - spaziodisp
'Inserisco le informazioni nelle Colonne
subit.SubItems.Add(spaziodisp.ToString + " MB").Text.ToString()
subit.SubItems.Add(spazio_occ.ToString + " MB").Text.ToString()
subit.SubItems.Add(spazio_tot.ToString + " MB").Text.ToString()
subit.SubItems.Add(drive.DriveFormat.ToString).Text.ToString()
Catch ex As Exception
End Try
'Aggiungo il tutto alla List View Lista
lista.Items.Add(subit)
Next
lista.EndUpdate()
End Sub
Il codice presenta alcuni aspetti importanti da non tralasciare come ad esempio ho dovuto gestire l'eccezione poichè quando viene enumerata l'unita cd o unità DVD, alcune informazione non mi vengono restituite, e quindi generebbero un'eccezione.
Altro fattore importante è la linea di codice lista.items.add(subit) che è da tener fuori dal try...catch...end try.
Anche questo Post è concluso, un saluto a tutti e alla prossima
Matteo