PDA

View Full Version : Calcolo spazio disco


Carmen
18-05-2006, 16:55
Ciao;

Avrei la necessità di calcolare lo spazio disponibile sull'Hardisk in modo chè quando lo spazio su disco risulta inferiore ad esempio ad un Giga oppure 500Mb (valore che preimposto io) mi venga visualizzato un messaggio di spazio disco in esaurimento.

Penzavo di farlo in percentuale, impostando ad esempio come limite il 10% pero' il 10% su di un HD da 20Gb potrebbe andare bene, mentre su un HD da 80Gb mi lascierebbe molto più spazio libero.

mynos79
18-05-2006, 17:37
In che linguaggio di programmazione?
in vb6 o .net è molto facile ...

texerasmo
18-05-2006, 17:44
usi linux?

Carmen
18-05-2006, 18:47
Mi ero dimenticata il linguaggio. VB6

mynos79
18-05-2006, 19:27
Beh, ci sono tanti metodi ...
Io ho spesso usato questo:

dichiaro in un modulo la seguente funzione:

'API che ritorna informazioni relative allo spazio libero ed al totale dell' HD
Declare Function GetDiskFreeSpaceEX Lib "kernel32" Alias _
"GetDiskFreeSpaceA" (ByVal lpRootPathName As String, _
lpSectorsPerCluster As Long, lpBytesPerSector As Long, _
lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters _
As Long) As Long

Poi nel form invece dichiaro le seguenti variabili e uso il codice così:

' informazioni sul disco selezionato
Dim lpSectorPerCluster, lpBytePerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters As Long

' variabili che contengono la capacità totale e lo spazio libero in byte
Dim capDisco
Dim spazLibero

' richiamo la funzione che salva nelle long i dati
Call GetDiskFreeSpaceEX("c:\", lpSectorPerCluster, lpBytePerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters)

' assegno alle mie variabili i byte
capDisco = lpTotalNumberOfClusters * lpSectorPerCluster * lpBytePerSector
spazLibero = lpNumberOfFreeClusters * lpSectorPerCluster * lpBytePerSector

Lavorando con le variabili capDisco e spazLibero puoi farti le percentuali, limiti vari, visualizzazioni ...

Carmen
18-05-2006, 19:40
Grazie 1000...