Espace disque (total, libre, utilisé sur n'importe kel disque) 1.0

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 401 fois - Téléchargée 29 fois

Contenu du snippet

Il permet de connaitre l'espace disque total, libre ou utilisé sur n'importe kel disque dur

Source / Exemple :


// créer un type
type
TEspaceDisque   = (tedTotal, tedLibre, tedUtilise);
TUniteOctet     = (tuoOctet, tuoKoctet, tuoMoctet, tuoGoctet, tuoToctet);

//*************************************************************
//       Fonction trouvant l'espace Libre, Utilisé, Total d'un disque
//*************************************************************
// 1er   Param est le disque dont on veut connaitre la taille
// 2ieme Param est une contante pour savoir kel taille on veut calculer
//   tedTotal   :  Espace Disque Total
//   tedLibre   :  Espace Disque Libre
//   tedUtilise :  Espace Disque Utilise
//
// 3ieme Param est une constante  pour savoir dans kel unite la taille doit etre retournée
//   tuoOctet  : Octet
//   tuoKoctet : Ko    (KiloOctet)
//   tuoMoctet : Mo    (MegaOctet)
//   tuoGoctet : Go    (GigaOctet)
//   tuoToctet : To    (TeraOctet)
//
function EspaceDisque (disque:string; espace:TEspaceDisque; unite:TUniteOctet):extended;
var
  lpFreeBytesAvailableToCaller : TLargeInteger;
  lpTotalNumberOfBytes         : TLargeInteger;
  lpTotalNumberOfFreeBytes     : TLargeInteger;
  taille                       : Extended;
begin

  if GetDiskFreeSpaceEx(PChar(disque), lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, @lpTotalNumberOfFreeBytes)
  then
    begin
      case espace of
        tedTotal   : taille := lpTotalNumberOfBytes;
        tedLibre   : taille := lpTotalNumberOfFreeBytes;
        tedUtilise : taille := lpTotalNumberOfBytes - lpTotalNumberOfFreeBytes;
      else
        taille := lpTotalNumberOfBytes;
      end;

      case unite of
        tuoOctet  : taille := taille;
        tuoKoctet : taille := taille/(power(1024,1));
        tuoMoctet : taille := taille/(power(1024,2));
        tuoGoctet : taille := taille/(power(1024,3));
        tuoToctet : taille := taille/(power(1024,4));
      else
        taille := taille/(power(1024,2));
      end;
    end;

  result := RoundTo(taille,-2);
end;

//************************************************************
// on appelle la fonction
// Si on veut connaitre l'espace libre sur le disque 'C' en 'Mo'   
  Taille := EspaceDisque('c:\', tedLibre, tuoMoctet);
  showmessage(FloatToStr(Taille) + ' Mo');

Conclusion :


Toutes Fonctions que je propose a été créé et donc testé par moi-même alors si problème il y a ne pas hésiter à m'écrire. :)

A voir également

Ajouter un commentaire

Commentaire

snakefinger
Messages postés
27
Date d'inscription
mardi 18 juin 2002
Statut
Membre
Dernière intervention
16 août 2003
-
ca serai cool si tu mettait un zip

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.