Newsgroup: it.comp.lang.visual-basic
Titolo: Spazio libero sul dischetto???

Cerco una funzione o una libreria che mi permetta di sapere quanto spazio
libero ho sul dischetto.
Spero che esista...
Grazie della collaborazione!!
Diego

Post del 31/03 ore 14.31    -Spazio libero su A:\
Risposta 1
Proprietà AvailableSpace
Descrizione
Restituisce la quantità di spazio disponibile sull'unità o sull'unità
condivisa di rete specificata.
Sintassi
oggetto.AvailableSpace
L'argomento oggetto corrisponde sempre a un oggetto Drive.
Osservazioni
Il valore restituito dalla proprietà AvailableSpace corrisponde al valore
restituito dalla proprietà FreeSpace. Si possono verificare differenze tra
le due proprietà in sistemi che supportano i limiti.
Nel seguente codice viene spiegato come utilizzare la proprietà
AvailableSpace:
Sub ShowAvailableSpace(drvPath)
Dim fs, d, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(drvPath))
s = "Unità " & UCase(drvPath) & " - "
s = s & d.VolumeName & vbCrLf
s = s & "Spazio disponibile: " & FormatNumber(d.AvailableSpace/1024, 0)
s = s & " KB"
MsgBox s
End Sub
Risposta 2
Prova a vedere se l'API qui sotto fa al caso tuo (ho copiato dalla guida API
di Appleman)
GetDiskFreeSpace
Declaration:
Declare Function GetDiskFreeSpace& Lib "kernel32" Alias
"GetDiskFreeSpaceA" _
(ByVal lpRootPathName As String, lpSectorsPerCluster As Long,
lpBytesPerSector _
As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As
Long)
Description:
Obtains information about the organization of a disk and the amount of
free space remaining.
Use with VB:
No problem.
Parameter Type/Description:
lpRootPathName String-The root path for the disk without the volume
name.
lpSectorsPerCluster Long-A variable to load with the number of sectors
in a cluster.
lpBytesPerSector Long-A variable to load with the number of bytes in a
sector.
lpNumberOfFreeClusters Long-A variable to load with the number of free
clusters on the disk.
lpTotalNumberOfClusters Long-A variable to load with the number of
clusters on the disk.
Return Value:
Long-Nonzero on success, zero on failure. Sets GetLastError.
Platform:
Windows 95, Windows NT
Comments:
Refer to the chapter text for an in-depth look at this function and how
it should be used to determine the amount of usable space available on a
drive.
This function should not be used on Windows 95 for drives over 2GB in
size. It will cap the drive size at 2GB.
locaduck

 libero ho sul dischetto.
Ti invio la funzione che uso di solito.
Senza commenti. E' banale.
Nota che la funzione è dichiarata As Long, quindi deve
essere utilizzata solo con drive di bassa capacità, come
i floppy; la chiamo appunto Floppy_GetFreeSpace.
Public Function Floppy_GetFreeSpace(gffsDriveLetter As String) As Long
Dim lngRet As Long
Dim SecPerCluster As Long
Dim BytesPerSector As Long
Dim FreeClusters As Long
Dim TotalClusters As Long
Dim BytesPerCluster As Long
   On Error Resume Next
   Err = 0
   gffsDriveLetter = UCase(gffsDriveLetter)
   If (gffsDriveLetter <> "A:") Then
      If (gffsDriveLetter <> "B:") Then
         gffsDriveLetter = -1
         Exit Function
      End If
   End If
   lngRet = GetDiskFreeSpace(gffsDriveLetter, SecPerCluster, _
                 BytesPerSector, FreeClusters, TotalClusters)
   If Err Then
      gffsDriveLetter = -2
      Exit Function
   End If
   If lngRet = 0 Then
     Floppy_GetFreeSpace = -3
   Else
     BytesPerCluster = BytesPerSector * SecPerCluster
     Floppy_GetFreeSpace = FreeClusters * BytesPerCluster
   End If
End Function