Imports System.Management
Public Class Form1
Private Function GetDisks() As List(Of harddisk)
Dim list As New List(Of harddisk)()
Try
Dim str As SelectQuery = New SelectQuery("select * from win32_logicaldisk")
Dim searcher = New ManagementObjectSearcher(str)
Dim disks = searcher.Get
For Each disk As ManagementObject In searcher.[Get]()
Dim nType As Integer = Convert.ToInt32(disk("DriveType"))
If nType <> Convert.ToInt32(IO.DriveType.Fixed) Then
Continue For
Else
Dim harddisk As New harddisk()
harddisk.free = Math.Round(Convert.ToDouble(disk("FreeSpace")) / (1024 * 1024 * 1024), 2, MidpointRounding.AwayFromZero)
harddisk.sum = Math.Round(Convert.ToDouble(disk("Size")) / (1024 * 1024 * 1024), 2, MidpointRounding.AwayFromZero)
harddisk.name = disk("DeviceID").ToString()
list.Add(harddisk)
End If
Next
Catch
End Try
Return list
End Function
Public Class harddisk
Public Property name As String
Public Property free As Double
Public Property sum As Double
End Class
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim listInfo = GetDisks()
Dim json = Newtonsoft.Json.JsonConvert.SerializeObject(listInfo)
MsgBox(json)
End Sub
End Class