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

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

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.