Espace libre restant sur un disque

Soyez le premier à donner votre avis sur cette source.

Vue 13 279 fois - Téléchargée 695 fois

Description

Comment puis-je savoir le nombre d'octet libre sur mon disk C: ?

Mettez ce code dans un Module :

Source / Exemple :


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

' Puis utilisez ce code :

Dim SecteursParCluster&
Dim BytesParSecteurs&
Dim NbLibreClusters&
Dim TotalNbClusters&
Dim BytesLibre&

Combien& = GetDiskFreeSpace("C:\", SecteursParCluster, BytesParSecteurs, NbLibreClusters, TotalNbClusters)
BytesLibre = NbLibreClusters * SecteursParCluster * BytesParSecteurs

MsgBox(BytesLibre & " octets libres")

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
257
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1
Désole mais ce code ne fonctionne pas avec VB 2008
Messages postés
9
Date d'inscription
jeudi 12 septembre 2002
Statut
Membre
Dernière intervention
28 mars 2011

Je pense qu'il faut plutot diviser par 1000 pour avoir le nombre d'octets en kilo puis par 1000 pour l'avoir en Méga. Nous sommes en base 10.
Sinon, je vais utiliser cette API pour mon projet.
Merci.
Messages postés
17
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
1 juin 2006

désollé, je tape avec des mouffles ;)

ce que je voulais dire c'est que l'octet n'est plus très utile de nos jours vu la taille de nos disques durs.

Tchao et A+
Messages postés
17
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
1 juin 2006

Le problème pour les gros disque n'est pas un problème de compatibilité avec des disques de grandes tailles mais un problème de dépacement de capacité, donc, petite astuce :

remplacer :

BytesLibre = NbLibreClusters * SecteursParCluster * BytesParSecteurs

par

BytesLibre = (NbLibreClusters / 1024 / 1024) * SecteursParCluster * BytesParSecteurs

Le résultat est alors donné en Mo (petit plus bien util le'octet de nos jours !)

Sur ce, très bon code.

A+
Ben c'est drette ca que je cherchais ! :) marci !
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.