Espace libre restant sur un disque

Soyez le premier à donner votre avis sur cette source.

Vue 12 967 fois - Téléchargée 667 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

Cette API n'est valable que pour les disques < 2 Go.
Cf GetDiskFreeSpaceEx
Ben c'est drette ca que je cherchais ! :) marci !
cs_champ
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+
cs_champ
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+
cs_timo76
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.

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.