CFileDialog Datei löschen



  • Hi,

    habe folgendes Problem:

    Lasse vom Benutzer eine Datei über CFileDialog öffnen. Wenn der Benutzer es wünscht, soll er später auch die Datei, welche gerade geöffnet ist, löschen können.

    Beim Löschen bekomme ich folgende Fehlermeldung (also zur Laufzeit):

    "Eine Zugriffsverletzung ist während des Zugriffs auf eine unbenannte Datei aufgetreten"

    Ich denke es kommt daher, daß beim Löschvorgang, die Datei ja noch von CFileDialog geöffnet ist.

    Nun meine Frage: Wie kann ich die geöffnete Datei vor dem Löschen schliessen?

    Vielen Dank

    Gruss Paulchen


  • Mod

    CFileDialog öffnet keine Dateien selbst.

    Du hast doch eben selbst geschrieben, Du hast die Datei geöffnet.



  • Hallo,
    muß da vor dem löschen nicht irgendwo ein

    CFile::Close()
    

    z.B.

    myFile.Close();
    // oder wenn pointer
    myFile->Close();
    

    für die geöffnete Datei aufgerufen werden? 😕

    mfg
    pixel



  • Hi,

    ja war schon etwas spät gestern! 😋

    Ihr habt natürlich recht! Ich öffne die Datei selber!

    Doch jetzt folgendes:

    Es ist eine ini-Datei die geöffnet wird. Dafür habe ich mir die CIniEx Klasse von CodeGuru zur Hilfe genommen. Ich öffne die Datei über CFileDialog mit der Methode

    open(....)
    

    von CIniEx. Hab die Methode mir vorhin nochmal in Ruhe angesehen. Innerhalb der Methode wird so vorgegangen:

    BOOL CIniEx::Open(LPCSTR pFileName,
    				  BOOL writeWhenChange,/*=TRUE*/
    				  BOOL createIfNotExist/*=TRUE*/,
    				  BOOL noCaseSensitive /*=TRUE*/,
    				  BOOL makeBackup      /*=FALSE*/)
    {.......
     .......
     CStdioFile file;
     file.open(pFileName);
     .
     .
     file.close();
    }
    

    Also es wird die Datei geöffnet und wieder geschlossen. Jetzt weiss ich nicht, ob die Fehlermeldung wirklich daher kommt, daß die Datei noch geöffnet ist?

    Was könnte die Meldung sonst noch bedeuten?



  • Wie doof kann ein einzelner Mensch eigentlich sein? 🙂

    Hab die Datei an einer anderen Stelle noch geöffnet! Sorry!

    Danke für Euer Interesse!


Anmelden zum Antworten