Dateigröße feststellen


  • Mod

    Hallo

    sollte doch mit FindFirstFile oder so
    auch gehen (ohne die Datei zu oeffnen)

    MfG
    Klaus



  • hmmm... also ich hab da mal anchgeschaut und habe leider imemr noch nichts gefunden! hat denn niemand ne ahnung? es muss doch irgendwie möglich sein, dass man einfach ne Dateigröße herausfindet! Das ganze kann von mir aus auch mit ner INDYHTTP komponente geschehen vor/nach/während dem Download... wäre froh über jede konstruktive antwort!

    cYa pl1zahd



  • OMG. Diese kleine Information 'vor oder nach dem Download' läßt das natürlich in einem anderen Licht erscheinen. Alle Antworten bezogen sich natürlich auf lokale Dateien...

    Schau Dir mal TIdFTP an. Da gibt es die Methode List. Damit sollten sich auch Detailinformationen abrufen lassen.



  • es ist einfach so... entweder frage ich die Größe vor dem Download ab (von dem server) oder wenn die Datei gedownloaded wurde dann auf dem System! egal wie ichs mache... hauptsache es funktioniert 😉

    cYa pl1zahd



  • wenn lokal:

    unsigned long size=0;
    File *file;
    file = fopen ("...","r");
    if (file==NULL)
        return 0;
    fseek(file,0,SEEK_END);
    size=ftell(file);
    fseek(file,0,SEEK_SET);
    

    Wenn nicht gibts auch mehrere Beiträge im ANSI C Forum dazu... 😉



  • Hi MasterCounter!

    erstmal danke für deinen Beitrag und den anderen auch schonma!

    Leider geht dein Vorschlag nicht! Ich bekomme im C++ Builder folgende Fehlermeldungen:

    "Undefiniertes Symbol 'File'"
    "Ungültige Verwendung von typdef 'file'"

    Ich hab mal bissl mit diesem code rumgespielt und wenn ich das 'File' durch 'file' ersetze und statt 'file' irgendwas anderes geschrieben habe dann meckerte er ned mehr so viel aber er meckerte trotzdem noch...

    als nun mein code so aussah:

    unsigned long size=0;
    file *datei;
    datei = fopen ("...","r");
    if (datei==NULL)
        return 0;
    fseek(datei,0,SEEK_END);
    size=ftell(datei);
    fseek(datei,0,SEEK_SET);
    

    Meckerte er nur noch darüber:

    "Konvertierung von 'FILE *' nach 'void * *' nicht möglich"
    "Konvertierung von 'void * *' nach 'FILE *' nicht möglich"

    was mach ich da noch falsch?

    cYa pl1zahd



  • Wenn es tatsächlich um lokale Dateien geht.

    Sieh mal in der BCB Hilfe unter TSearchRec und passend dazu das Beispiel zu FindClose / FindFirst / FindNext an.



  • sorry, fehler von mir... 🙄 es muss

    FILE *file;
    

    heißen 😃

    ach aj, und bei

    file=fopen("...","r");
    

    muss du das "..." natürlich noch durch deinen Pfad ersetzen (z.B.: "c:\\test.txt")



  • @ MasterCounter:

    Ja das ist mir schon klar mit dem Dateipfad 😉

    zu deinem oberen code... also das FILE nimmt er bei mir gar nicht an... der compiler sagt "Undefiniertes Symbol 'FILE'"!

    @ Joe_M.:

    Danke! Deine lösung funktioniert perfekt! Danke für deine Hilfe und danke auch allen anderen die mir geholfen haben! Mein Programm ist fast fertig! muss nur noch bissl den feinschliff machen dann kann ichs abgeben... hoffentlich haben dich die mühen dann wenigstens gelohnt 🙂

    cYa pl1zahd



  • Hallo,
    ich habs in der Anwendung ma so gelöst. Ob nu richtig oder nicht weis ich nicht aber es geht

    ///////////include/////////////////
    #include <fstream>
    using namespace std;
    
    AnsiString Filename;
    
    int handle;
    
    handle = open(Filename.c_str() ,O_RDONLY | O_BINARY);
    long int FGroesse   = filelength(handle);
    
    close(handle);
    

    gruss
    waldseeduo


Anmelden zum Antworten