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 FragenMfG
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
: )