Probleme avec Espace Disque Libre

Signaler
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
4 juin 2008
-
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
4 juin 2008
-
J'ai besoin d'avoir la taille restante sur l'un des lecteurs que j'ai choisi dans mon code... mais je ne sais comment faire, j'ai vu des sources mais elle ne marchent pas dans mon code :

Dim fs, d As Drive, dc, S, n
Set fs = CreateObject("Scripting.FileSystemObject")
Set dc = fs.Drives
For Each d In dc If T "Disque dur" Then Tail Tail + Round(d.TotalSize / 1024 / 1024, 2) If T "Disque dur" Then Rest Rest + Round(d.FreeSpace / 1024 / 1024, 2)
Next

C'est un extrait... mais ça ne matrche pas sur mon programme, mais sur le fichier que j'ai téléchargé ça marche... on peut m'expliquer comment faire?!?

Merci!

2 réponses

Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
4
Il faut utiliser l'api :GetDiskFreeSpaceEx

Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long

Private Sub Form_Load()
Dim r As Long, BytesFreeToCalller As Currency, TotalBytes As Currency
    Dim TotalFreeBytes As Currency, TotalBytesUsed As Currency
    'Le disque
    Const RootPathName = "C:"
    Call GetDiskFreeSpaceEx(RootPathName, BytesFreeToCalller, TotalBytes, TotalFreeBytes)
    Me.Print
    Msg = "Espace Total: " & Format$(TotalBytes * 10000, "###,###,###,##0") & " bytes" & vbCrLf & _
    "Espace Libre :" & Format$(TotalFreeBytes * 10000, "###,###,###,##0") & " bytes" & vbCrLf & _
    "Espace Utilisable :" & Format$(BytesFreeToCalller * 10000, "###,###,###,##0") & " bytes" & vbCrLf & _
    "Espace Utilisé :" & Format$((TotalBytes - TotalFreeBytes) * 10000, "###,###,###,##0") & " bytes"
    'Affichage
    MsgBox Msg

End Sub


++
Messages postés
109
Date d'inscription
mardi 13 avril 2004
Statut
Membre
Dernière intervention
4 juin 2008

On l'utilise comment... parce qu'en fait je cherche à avoir, si possible quelque chose de ce style :

dim EspaceLibre as Long

EspaceLibre=GetFreeSpace("c:")
msgbox EspaceLibre


Et zou y a un message qui apparait avec l'espace libre, en octet, du disque qui s'affiche... c'est tout!!!

Soit je me sert mal de la fonction ou soit, il doit y avoir plus simple!!!

Merci d'avance!