Dateilänge



  • Wie bestimme ich die Länge einer Datei??

    Ich habe es mit

    printf("%d",filelenght(Datei));
    

    probiert aber da kommt immer -1 raus..

    Datei wurde mit fopen geöffnet..



  • Und die Funktion ist top secret? -- Normalerweise gibt es zwei Möglichkeiten: Entweder datei öffnen, mit fseek ans Ende hüpfen (dazu vielleicht mal die Hilfe konsulierten) und sich von ftell das Ergebnis sagen lassen. Diese Lösung hat das Problem, daß sie nach dem Standard nicht zu funktionieren braucht (weder für Binär- noch für Textdateien). Deswegen gibt es noch die zweite Möglichkeit, bei der man die Datei öffnet, und dann so lange aus der Datei ausliest, bis man am Ende angekommen ist. Und mitzählen nicht vergessen.



  • @Daniel E., wußte ich gar nicht. Habe bisher immer mit fseek/ftell gearbeitet. Werde mich wohl etwas umgewöhnen müssen 🙂 Man lernt halt jeden Tag etwas neues.



  • Werde mich wohl etwas umgewöhnen müssen

    naja, bevor du jetzt tatsächlich die Datei einmal komplett durchliest, nur um die Größe zu erfahren, nimm doch lieber seek & tell...
    Am besten ist aber, direkt Funktionen vom Betriebsystem zu nehmen (stat() bei posix und ich glaube GetFileSize() bei Windows).



  • Und filelength unter DOS. Man muss allerdings darauf achten, dass der Parameter kein FILE * ist sondern ein sog. Handle. Es gibt aber eine Funktion um den Handle eines FILE * zu bekommen. Einfach mal nach der dos.h suchen.


Anmelden zum Antworten