Seite 1 von 1

Free Diskspace mit QT

Verfasst: 1. Oktober 2007 13:06
von khrl01
Gibt es eine plattformübergreifende Möglichkeit unter QT den freien Platz auf einem Drive bzw. einem Directory zu bestimmen?


Grüsse
karl-heinz

Verfasst: 1. Oktober 2007 13:11
von macman
Nein.

Verfasst: 1. Oktober 2007 21:00
von CaptnChaos
du könntest hierdrauf aufbauen:

Code: Alles auswählen

void findAllFiles(QDir curDir)
{
	
int files= 0, dirs = 0;
qint64 fullSize = 0;
	QFileInfoList temInfo;
	temInfo = curDir.entryInfoList(QDir::NoDotAndDotDot | QDir::AllDirs | QDir::Files);
	
	for(int i = 0; i < temInfo.size(); ++i)
	{
		if(temInfo[i].isFile())
		{
			++files;
			fullSize += temInfo[i].size();
			
		}
		else if(temInfo[i].isDir())
		{
			++dirs;
			findAllFiles(QDir(temInfo[i].filePath()));
		}
		
	}
	
}

Verfasst: 2. Oktober 2007 07:32
von macman
KernelPanic hat geschrieben:du könntest hierdrauf aufbauen:
Ich sehe nicht wie man darauf aufbauen kann. Nach etlichen Minuten Addiererei von tausenden Dateigrößen weißt Du nämlich immer noch nicht wie viel Platz nun frei ist :-)

Plattformübergreifend gibt es da nichts. Man kann sich aber selbst was schreiben, wenn es nicht schon jemand getan hat.
http://lists.trolltech.com/qt-interest/ ... 873-0.html
Ob das beim Mac auch funktioniert kann ich nicht sagen. Sonst eben QProcess und df.

Man könnte auch warten bis die Trolls es implementiert haben:
http://trolltech.com/developer/task-tra ... thod=entry

Verfasst: 2. Oktober 2007 08:05
von CaptnChaos
hm, ja stimmt... hab da was falsch verstanden...

Verfasst: 2. Oktober 2007 09:35
von khrl01
Danke für die Hilfe..
ich wollte das Rad nur nicht 2x erfinden...
Wen es interessiert :
Für Windows geht's mit GetDiskFreeSpaceEx()
und unter Linux mit statfs()
für den MAC brauche ich es noch nicht...

karl-heinz

Verfasst: 2. Oktober 2007 11:45
von caligano
Was hältst du von der Boost Filesystem Library ?

Code: Alles auswählen

boost::filesystem::space(Path const & p);
Die ist plattformunabhängig...
--> http://www.boost.org/libs/filesystem/doc/index.htm

Verfasst: 2. Oktober 2007 12:05
von CaptnChaos
und wie macht boost das?
siehe oben...

Verfasst: 2. Oktober 2007 17:40
von khrl01
caligano hat geschrieben:Was hältst du von der Boost Filesystem Library ?

Code: Alles auswählen

boost::filesystem::space(Path const & p);
Die ist plattformunabhängig...
--> http://www.boost.org/libs/filesystem/doc/index.htm
hatte ich bei boost glatt übersehen...
danke für den tip..

gruss
karl-heinz