FileSize bestimmen mit ifstream

robeldiebone

Grünschnabel
Code:

Code:
ifstream infile;
infile.open(FileNameIn.c_str());

Ich benötige auch die Größe der Datei, das funktioniert so:

Code:
long FileSIze = filelength(HANDLE);

Wobei HANDLE ein int Wert ist, und ich in meiner Borland C++ 6 Hilfe nicht finde, wo ich diesen Handle herbekomme. Denn open() liefert void zurück.
Hat jemand davon Ahnung?
 
Wenn du unter VLC / CLX Programmierst, warum nimmst du dann ifstream?
Borland bringt in seiner Umgebung eigene FSO Funktionen mit, damit ist das
öffnen, bearbeiten etc. wesentlich einfacher. Soweit ich weiß kannst du da mit einer Funktion aus Größe etc. bestimmen, bin aber nicht sicher...
 
ich programmiere mit Borland, das Programm soll aber mit Standard C laufen, damit es in der Firma auch mal woander compilliert werden kann etc...
Deswegen ifstream :)
 
Zuletzt bearbeitet:
Hi.

Man kann natürlich auch ifstream nehmen (um z.B. relativ plattformunabhängig zu sein):
Code:
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
  ifstream in ("/var/log/up2date");

  if (in) {
    in.seekg (0, ios::end);
    int length = in.tellg ();

    cout << length << endl;
  } else {
    cerr << "File not found." << endl;
    return 1;
  }
}
 
bei mir sagt er denn in dem Fall:

in.seekg (0, ios::end); <- es muss eine Speicheradresse übergeben werden. Und meine length hat denn denn garkeinen Wert.

Wieso ist das?
 
Eigentlich sollte das auch mit dem Borland C++ Builder 6 so funktionieren, aber unter Umständen muß man statt "ios::end" zu benutzen auf "ifstream::end" zurückgreifen (jedenfalls hat es das oben genannte Problem von robeldiebone gelöst):
Code:
in.seekg (0, ifstream::end);
 
Zurück