Hi,
ich habe ein Problem, und zwar muss ich für ein Tool herausfinden, wieviel Festplattenplatz verfügbar ist. Und zwar muss das Programm auf allen Win-Plattformen (Win95-WIn2000) laufen. Ich habe den Befehl GetDiskFreeSpaceEx gefunden, aber dieser liefert mir meiner Meinung nach Phantasie-Ergebnisse. Vielleicht bin ich auch zu blöd , diesen Befehl zu verstehen. Anbei mein Sourcecode. Ich will das Ergebniss des leeren Speichers in einen Array schreiben. Wäre nett, wenn mir wer helfen kann
Source:
int drive, i, nFreespace;
static char path[_MAX_PATH];
CString sLaufwerksbuchstabe, sFreespace;
char *lpStrLaufw ;
_ULARGE_INTEGER lpFreeBytesAvailable;
_ULARGE_INTEGER lpTotalNumberOfBytes;
_ULARGE_INTEGER lpTotalNumberOfFreeBytes;
int *i64FreeBytesToCaller, int *i64TotalBytes, i64FreeBytes;
int MB=1024*1024;
i=0;
lpStrLaufw="C:\\" ;
/* Schreiben der Laufwerksbuchstaben in einen Array */
for( drive = 1; drive <= 26; drive++ )
if( !_chdrive( drive ) )
{
i++;
/*sLaufwerksbuchstabe.Format( "%c:\\", drive + 'a' - 1 );
GetDiskFreeSpaceEx(sLaufwerksbuchstabe, &lpFreeBytesAvailable, &lpTotalNumberOfBytes, &lpTotalNumberOfFreeBytes);
sa_DriveLetter[i].Add(sLaufwerksbuchstabe);
sFreespace.Format("%d MB %d MB %d", &lpTotalNumberOfFreeBytes,&lpFreeBytesAvailable, &lpTotalNumberOfBytes);
//sa_Freespace[i].Add(sFreespace);*/
int fResult = GetDiskFreeSpaceEx (lpStrLaufw,
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
sFreespace.Format("%d MB %d MB %d", &i64FreeBytesToCaller, &i64TotalBytes, &i64FreeBytes);
Ben