Determinando o espaço disponível de uma unidade


Essa vai ser rápida. Vamos lá...

1- Inicie um novo projeto no Visual Basic e adicione um formulário e um módulo ao projeto:

2- Insira o seguinte código no módulo 

Declare Function GetDiskFreeSpace Lib "kernel32" Alias _
"GetDiskFreeSpaceA" (ByVal lpRootPathName As String, _
lpSectorsPerCluster As Long, lpBytesPerSector As Long, _
lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters _
As Long) As Long

3-No formulário insira os controles : combobox e commandButton , conforme layout abaixo:

4-A seguir insira o seguinte código no evento click do botão de comando:

Private Sub Command1_Click()

Dim SectorsPerCluster As Long
Dim BytesPerSector As Long
Dim NumberOfFreeClusters As Long
Dim TotalNumberOfClusters As Long
Dim BytesLivres As Long
Dim retorno As Long

retorno = GetDiskFreeSpace(Combo1.Text, SectorsPerCluster, _
BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters)

BytesLivres = NumberOfFreeClusters * SectorsPerCluster * _
BytesPerSector

MsgBox " A unidade -> " & Combo1.Text & " possui " & Format(BytesLivres, "###,###,###,###") & " bytes livres "

End Sub

5-Insira o seguinte código no evento Load do formulário: (As letras das unidades podem ser diferentes para você)

Private Sub Form_Load()
  Combo1.AddItem "C:\" 
  Combo1.AddItem "D:\"
  Combo1.AddItem "E:\"
  Combo1.ListIndex = 0
End Sub

Ao executar o projeto , escolhendo o drive C: e clicando no botão de comando , deveremos obter o seguinte resultado: (os valores para você poderão ser diferentes...)

É isso ai...  Então, até a próxima dica...;-)