Free Diskspace mit QT

Alles rund um die Programmierung mit Qt
Antworten
khrl01
Beiträge: 28
Registriert: 28. August 2007 13:06

Free Diskspace mit QT

Beitrag 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
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Nein.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag 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()));
		}
		
	}
	
}
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

hm, ja stimmt... hab da was falsch verstanden...
khrl01
Beiträge: 28
Registriert: 28. August 2007 13:06

Beitrag 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
caligano
Beiträge: 126
Registriert: 19. August 2006 15:33

Beitrag 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
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

und wie macht boost das?
siehe oben...
khrl01
Beiträge: 28
Registriert: 28. August 2007 13:06

Beitrag 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
Antworten