Gentile Guglielmo,
Puoi ottenere le informazioni desiderate utilizzando le API di Windows direttamente in VB.NET. Una delle API che potresti utilizzare per ottenere le informazioni sulla dimensione dei file e delle cartelle è GetDiskFreeSpaceEx
dell'API di Windows. Ecco un esempio di come potresti utilizzarlo in VB.NET:
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport("kernel32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
Private Shared Function GetDiskFreeSpaceEx(
ByVal lpDirectoryName As String,
ByRef lpFreeBytesAvailableToCaller As ULong,
ByRef lpTotalNumberOfBytes As ULong,
ByRef lpTotalNumberOfFreeBytes As ULong) As Boolean
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim folderPath As String = "C:\Path\To\Your\Folder"
Dim freeBytesAvailableToCaller As ULong
Dim totalNumberOfBytes As ULong
Dim totalNumberOfFreeBytes As ULong
If GetDiskFreeSpaceEx(folderPath, freeBytesAvailableToCaller, totalNumberOfBytes, totalNumberOfFreeBytes) Then
MessageBox.Show($"Total Size: {totalNumberOfBytes} bytes")
Else
MessageBox.Show("Error getting folder size.")
End If
End Sub
End Class
Questo codice ti darà la dimensione totale della cartella specificata. Puoi iterare attraverso i file e le cartelle per ottenere il conteggio esatto di file e cartelle se necessario. Questo metodo dovrebbe essere più veloce rispetto all'utilizzo di DirectoryInfo
e Directory.GetFiles
.
Spero di essere stata utile.
Monica.