Dateigröße ausgeben
-
Hall Leute,
ich bin dabei bei einer Datei die Größe der Datei(z.B: in Bytes)
auszulsen. Ich habe folgendes geschrieben:DWORD SizehWnd; SizehWnd = GetFileSize("C:\\Users\\Patrick\\Downloads\\txt3.txt",0); char sze[300]; sprintf_s(sze,"%f",SizehWnd); MessageBox(0,TEXT(sze),TEXT("Dateigröße"),MB_OKCANCEL | MB_ICONWARNING);Doch die MessageBox sagt, dass es iwie -928989898... gr0ß ist.
Die datei ist in echt 62 bytes groß.
-
%f schreibt einen float, kein unsigned int. Du willst %u statt %f.
In richtigem C++ wäre das übrigens nicht passiert:
#include <string> DWORD SizehWnd = GetFileSize("C:\\Users\\Patrick\\Downloads\\txt3.txt",0); MessageBox(0,TEXT(std::to_string(SizehWnd).c_str()),TEXT("Dateigröße"),MB_OKCANCEL | MB_ICONWARNING);
-
Mhh jetzt steht da irgendwie diese Zahl 492...
-
std::ifstream is("bla.foo", std::ios::binary); is.seekg(0, std::ios::end); std::cout << "size = " << is.tellg() << std::endl;
-
großbuchstaben schrieb:
std::ifstream is("bla.foo", std::ios::binary); is.seekg(0, std::ios::end); std::cout << "size = " << is.tellg() << std::endl;Danke und wie kann ich das in eine MessageBox machen, denn da steht dann immer noch 0.
-
MeinNAme schrieb:
großbuchstaben schrieb:
std::ifstream is("bla.foo", std::ios::binary); is.seekg(0, std::ios::end); std::cout << "size = " << is.tellg() << std::endl;Danke und wie kann ich das in eine MessageBox machen, denn da steht dann immer noch 0.
hat mit c++ nichts am hut. gib es doch einfach in der konsole aus?
-
MeinNAme schrieb:
Danke und wie kann ich das in eine MessageBox machen, denn da steht dann immer noch 0.
welche Plattform denn? bei mir geht das mit
std::ifstream in("bla.foo", std::ios::binary); in.seekg(0, std::ios::end); std::ostringstream os; os << "xmessage \"size= " << in.tellg() << "\""; system(os.str().c_str());