Как программно получить размер сетевого диска? - Visual Basic .NET
Формулировка задачи:
Всем доброго времени суток.
Необходимо мониторить размер свободного места на сетевом диске. Есть IO.DriveInfo.TotalFreeSpace но с помощью него можно получить информацию о дисках только на локальном компьютере. А как подключиться к компьютеру в локальной сети (например, имеющему адрес 192.168.x.x)?
Заранее всем спасибо.
Решение задачи: «Как программно получить размер сетевого диска?»
textual
Листинг программы
- Imports System.Runtime.InteropServices
- Public Class Form1
- <DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Private Shared Function GetDiskFreeSpaceEx(lpDirectoryName As String, ByRef lpFreeBytesAvailable As ULong, ByRef lpTotalNumberOfBytes As ULong, ByRef lpTotalNumberOfFreeBytes As ULong) As <MarshalAs(UnmanagedType.Bool)> Boolean
- End Function
- Public Shared Function GetDriveSpace(folderName As String, ByRef freespace As ULong, ByRef totalspace As ULong) As Boolean
- Dim free As ULong = 0
- Dim total As ULong = 0
- Dim dummy2 As ULong = 0
- Try
- If Not String.IsNullOrEmpty(folderName) Then
- If Not folderName.EndsWith("") Then
- folderName += ""
- End If
- If GetDiskFreeSpaceEx(folderName, free, total, dummy2) Then
- freespace = free
- totalspace = total
- Return True
- End If
- End If
- Catch
- End Try
- Return False
- End Function
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim totalspace As ULong = 0
- Dim freespace As ULong = 0
- If GetDriveSpace("\\fileserver\public", freespace, totalspace) Then
- 'freespace - свободное пространство
- ' totalspace - всего
- TextBox1.Text = Math.Round(freespace / 1024 / 1024, 2) & " Mb"
- TextBox2.Text = Math.Round(totalspace / 1024 / 1024, 2) & " Mb"
- Else
- '
- End If
- End Sub
- End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д