Programmgröße ermitteln
-
Hallo Leute,
Wie kann ich ohne größere Umstände die Größe meines ausgeführten Programmes herausfinden?
Sowas nach dem Motto: this->getfielsize
GetFileSize ist mir bekannt, allerdings ist es mir "ein wenig zu umständlich"
MfG
Mapf
-
Falls Du die Dateigrösse auf der Festplatte meinst:
Das Äquivalent zu GetFileSize in .NET (C++/CLI ist .NET) ist FileInfo.Length
(http://msdn.microsoft.com/de-de/library/system.io.fileinfo.length(VS.80).aspx)Den Dateinamen des aktuell ausführenden Assemblies kriegst Du von der Klasse Assemlby: http://msdn.microsoft.com/de-de/library/system.reflection.assembly.getexecutingassembly.aspx
Simon
-
Danke für Deine Antwort, Simon!
Ja, genau, ich meine die Dateigröße auf der Festplatte...
Doch wie genau komm ich jetzt an diesen Wert?
So habe ich es probiert:
this->LB_CurrentFilesize->Text = Convert::ToString(System::IO::FileInfo::Length::get());Fehler:
error C2352: 'System::IO::FileInfo::Length::get': Unzulässiger Aufruf einer nicht statischen Memberfunktion
-
Du musst zuerst ermitteln wie dein EXE heisst (mit der Klasse Assembly).
Dann musst Du ein FileInfo Objekt erzeugen und auf diesem Length abfragen (das get() ist überflüssig).Simon
-
Danke Dir Simon, ich werde es gleich mal versuchen

Ich glaube mein Denken ist noch zu einfach für C++...
Habe damals mit AHK angefangen, eine Scriptsprache, die mir damals als "programmieren" verkauft wurde...bin ein bisschen geschädigt durch diese Einfachheit von AHK, darum die ab und an dämlichen Fragen
MfG
Mapf
-
Sorry, ich peil da irgendwie nicht durch...
Kann mir vielleicht Jemand ein Codeschnippsel zurecht machen?
Wäre echt dankbar dafür
-
using namespace System; using namespace System::IO; using namespace System::Reflection; Int64 GetSizeOfExecutingFile() { Assembly^ assembly = Assembly::GetExecutingAssembly(); String^ fileName = assembly->Location; FileInfo fileInfo(fileName); return fileInfo.Length; } int main(array<System::String ^> ^args) { Int64 size = GetSizeOfExecutingFile(); return 0; }Viel Spass und Gruss.
Simon
-
Dankesehr Simon!!!
Warst mir eine große Hilfe! : )
Edit: Ach ja, Frage ist gelöst
: )