st_size löscht die Datei !?!



  • Hallo Kollegen,

    ich möchte die Attribute von Dateien auslesen. Dazu habe ich mir ein Beispiel aus der BCB Hilfe vorgenommen.

    struct stat statbuf;
    	FILE *stream;
    	char Filename[255];
    	strcpy(Filename, ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
    
       /* Öffnen einer Datei zur Aktualisierung */
       if ((stream = fopen(Filename, "w+")) == NULL)
       {
    	  ShowMessage("Cannot open output file.");
       }
    
       /* Einholen von Informationen über die Datei */
       stat(Filename, &statbuf);
    
       fclose(stream);
    

    Frage ich jetzt die Informationen einer Datei ab, ist sie im Anschluss leer, das heist, die Größe beträgt danach 0Kb. Ich habe alle Attributsabfragen auskommentiert und nur noch die Größenabfrage dringelassen. Es muss wohl an dieser Zeile liegen.

    //Filesize abfragen und in ein Edit schreiben
    Edit7->Text = (FloatToStr(statbuf.st_size));
    

    kann mir jemand sagen was ich falsch mache?

    danke im Voraus
    mfg Stephan



  • MSDN schrieb:

    fopen

    "w+": Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.


  • Mod

    Und warum führst Du stat nicht alleine aus. Du benötigst dazu doch gar keinen fopen?



  • vielen Dank für eure Hilfe. Ich habe den Quelltext 1:1 aus einem Beispiel aus der BCB Hilfe zu stat.


Log in to reply