Savoir la place disponible dans un lecteur...

Chricl - 12 oct. 2001 à 22:56
 Xaviou - 13 oct. 2001 à 00:43
Comment peut-on afficher dans une textbox la place restante sur un lecteur ?

En Go...Mo...et si possible en Ko !

Merci d'avance !
:question)

2 réponses

Salut
Essaye avec un objet drive ,je sais qu'il possede une propriete qui t'interesserai mais je ne sais plus laquelle.
@++ :)
0
Essayes ça : Sur une Form, mets un textbox dans lequel tu entreras le nom du lecteur à analyser (ex C:\) et un bouton nommé Command1
Le Code suivant te premettra de récupérer l'information que tu cherches (et bien plus encore)

Désolé pour les retours à la ligne, mais je n'ai fait qu'un Copier/Coller d'un code que j'avais pris je ne sais plus où.

Bonne chance.

Private Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" ( _
ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long

Private Sub Command1_Click()
Dim Disque As String
Dim Secteurs As Long
Dim Bytes As Long
Dim ClustersLibres As Long
Dim NombreDeClusters As Long
Dim TailleLibre As Variant, TailleTotale As Variant

Dim NomVolume As String
Dim NumSerie As Long, Serie As String
Dim ResStr As String
Dim dum As Long
Dim RetVal As Long

Dim DriveType As String

Disque = Text1.Text 'Récupère le disque dont on cherche les infos

'*** Récupère l'info sur le type de disque
RetVal = GetDriveType(Text1.Text)

Select Case RetVal
Case 0
DriveType = "UNDETERMINED"
Case 1
DriveType = "NO ROOT"
Case 2
DriveType = "REMOVABLE"
Case 3
DriveType = "FIXED"
Case 4
DriveType = "REMOTE"
Case 5
DriveType = "CD ROM"
Case 6
DriveType = "RAMDISK"
End Select

'*** Récupère les infos concernant l'espace libre / occupe / total du disque
RetVal = GetDiskFreeSpace(Disque, Secteurs, Bytes, ClustersLibres, NombreDeClusters)
'GetDiskFreeSpace renvoie plusieurs informations (dans l'ordre):
'nombre de groupes libres
'nombre de secteurs par groupe
'nombre d'octets par secteur

'Il suffit de multiplier les trois pour avoir le nombre d'octets libres sur le disque dur
TailleLibre = Bytes * Secteurs * ClustersLibres
TailleTotale = Bytes * Secteurs * NombreDeClusters

'*** Récupère les infos concernant le numéro de série et nom de volume du disque
NomVolume = Space$(15) 'Attribue l'espace nécessaire
ResStr = Space$(32) 'aux variables de type chaine de taille fixe

RetVal = GetVolumeInformation(Disque, NomVolume, Len(NomVolume), _
NumSerie, dum, dum, ResStr, Len(ResStr))

'Met en forme le numéro de série
Serie = Right(String(8, "0") + Hex$(NumSerie), 8)
Serie = Left(Serie, 4) + "-" + Right$(Serie, 4)

'et le nom de volume
NomVolume = Trim(NomVolume)

End Sub
0
Rejoignez-nous