Soyez le premier à donner votre avis sur cette source.
Snippet vu 11 045 fois - Téléchargée 31 fois
/******************************************************************************/ /* FREEDISKSPACE */ /******************************************************************************/ /* Auteur: Ironnyc / Email: Ironnyc@hotmail.com */ /* Description / Recupere les infos sur la taille d'un disque dur */ /* / Capacite du disque dur ,espace libre etc... */ /* ATTENTION / pour de gros disque : dans le calcul de espace_total la */ /* / taille total des cluster multiplier par les secteurs et */ /* / encore multiplier par les bytes par secteur donne un */ /* / resultat depassant la capacite de stockage d'un */ /* / UNSIGNED LONG bref le calcul reste identique a celui de */ /* / espace_libre */ /******************************************************************************/ #include <stdio.h> /* bibliotheque d'entree sortie (printf...)*/ #include <windows.h> /* GetDiskFreeSpace */ void main() { /* Declaration des variables */ char lecteur[5] = "c:\\"; /* lettre du lecteur a scanner */ unsigned long Secteurs_Par_Cluster, Bytes_Par_Secteurs, Cluster_libre, Total_Cluster; /* stockage des infos */ unsigned long espace_libre, espace_utilise, espace_total; /* permettra de traiter les infos */ GetDiskFreeSpace(lecteur,&Secteurs_Par_Cluster,&Bytes_Par_Secteurs,&Cluster_libre,&Total_Cluster); espace_libre = ((Cluster_libre * Secteurs_Par_Cluster * Bytes_Par_Secteurs)/1024)/1024; espace_total = (((Total_Cluster * Secteurs_Par_Cluster)/1024)*Bytes_Par_Secteurs)/1024; espace_utilise = espace_total - espace_libre; /* Affichage des resultats */ printf("lecteur= %c:\\\n",lecteur[0]); printf("Secteur par cluster= %ld\n",Secteurs_Par_Cluster); printf("Bytes par secteurs= %ld\n",Bytes_Par_Secteurs); printf("Cluster libres= %ld\n",Cluster_libre); printf("Nombre total de cluster= %ld\n",Total_Cluster); printf("\nCapacite du lecteur : %ld Mo",espace_total); printf("\nEspace utiliser : %ld Mo",espace_utilise); printf("\nEspace libre : %ld Mo\n",espace_libre); /* Pause */ puts("Pour continuer pressez une touche..."); getchar(); }
unsigned _int64 DiskFullSpace(char* pszRoot)
{ // pour les grands disks
ULARGE_INTEGER liFreeBytes, liTotalBytes, liTotalFreeBytes;
if(!GetDiskFreeSpaceEx(pszRoot, &liFreeBytes, &liTotalBytes, &liTotalFreeBytes)) return 0;
return (unsigned _int64) liTotalBytes.QuadPart;
}
J'ai apdapté ton code et il ne marche plus qu'est ce qui va pas ?
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.