hi,
hat einer ne Idee wie ich herausbekommen kann, wieviel (HDD-)Speicher in einem spezifischen Pfad (zB den Windowslaufwerken) noch verfügbar ist...?
Thx
Elgrimm Esleborn
[Qt4.11] Restspeicherplatz
[Qt4.11] Restspeicherplatz
Zuletzt geändert von Esleborn am 6. März 2006 15:32, insgesamt 1-mal geändert.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Da gibt es wohl nichts plattformunabhängiges. Bei Windows funktioniert es so:
Code: Alles auswählen
ULONG64 FreeSpace = 0;
ULARGE_INTEGER FreeBytesAvailableToCaller;
ULARGE_INTEGER TotalNumberOfBytes;
ULARGE_INTEGER TotalNumberOfFreeBytes;
if (!GetDiskFreeSpaceEx(testpath.utf16(), &FreeBytesAvailableToCaller, &TotalNumberOfBytes, &TotalNumberOfFreeBytes))
{
showErrorMessage(GetLastError(), NULL, NULL);
}
FreeSpace = TotalNumberOfFreeBytes.QuadPart;
Ist zwar eine extrem ineffiziente und bei der Verwendung von Quotas auch sinnlose Methode, aber zumindest der Vollständigkeit halber sollte sie erwähnt werden:
In einer Endlosschleife könntest du ein File wachsen lassen und wenn ein NoSpaceLeft Error geworfen wird, kennst du die Größe. Datei löschen nicht vergesse
In einer Endlosschleife könntest du ein File wachsen lassen und wenn ein NoSpaceLeft Error geworfen wird, kennst du die Größe. Datei löschen nicht vergesse
Uaaahh, bei heutigen Festplattengrößen hat man schnell mal etliche Gigs frei, und dann? FAT32 kann z.B. nur Dateien bis 4GB. Hat mich letztlich einiges an Nerven gekostet, hat aber nichts mit Qt zu tun. Man bedenke nur wie sich diese Methode auf die Lebensdauer von Festplatten auswirken würdeNassian hat geschrieben:In einer Endlosschleife könntest du ein File wachsen lassen und wenn ein NoSpaceLeft Error geworfen wird, kennst du die Größe. Datei löschen nicht vergesse