1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include <windows.h>
#include <stdio.h>
#include <tchar.h> /*À inclure APRÈS le reste*/
/*Juste au cas où, mais normalement dans Visual c'est déjà défini*/
#ifndef ARRAYSIZE
#define ARRAYSIZE(x) (sizeof(x)/sizeof((x)[0]))
#endif
void disquePret(LPCTSTR diskName)/*Note: 'LPCTSTR' = 'const TCHAR *' */
{
BOOL r;
ULARGE_INTEGER availSpc = {0}, totalSpc = {0}, freeSpc = {0};
r=GetDiskFreeSpaceEx(diskName, &availSpc, &totalSpc, &freeSpc);
if(r) {printf(" %I64dGiO disponible", (freeSpc.QuadPart)/(2ull << 30)); }
else { printf(" %s","Non disponible"); }
}
void listerDisques()
{
TCHAR buffer[500] = _T("");
TCHAR const* p;
DWORD length = GetLogicalDriveStrings(ARRAYSIZE(buffer), buffer);
if(length==0 || length >= ARRAYSIZE(buffer))
printf("%s", "Echec de GetLogicalDriveStrings().");
for(p = buffer; *p != _T('\0'); p += _tcslen(p)+1)
{
UINT driveType = GetDriveType(p); /*Pas la peinde de le rappeler 4 fois*/
if(driveType==2)
{ printf("%s","Disque amovible"); }
if(driveType==3)
{ printf("%s","Disque local"); }
if(GetDriveType(p)==3 || GetDriveType(p)==2)
{
disquePret(p);
_tprintf(_T(" %s\n"), p);
}
}
return ;
}
void explorerdossier()
{
HANDLE hEnt;
WIN32_FIND_DATA ent = {0};
if ((hEnt = FindFirstFile(_T("*.*"), &ent)) != INVALID_HANDLE_VALUE)
{
do
{ _tprintf(_T("%s\n"), ent.cFileName); }
while (FindNextFile(hEnt, &ent));
FindClose(hEnt);
}
return;
} |
Partager