deleteFile()



  • Habe folgende leichte Frage (naja, für mich ist das schwer):
    Ich möchte mit DeleteFile ein Datei löschen. Der Name der Datei muss aber erst noch zusammen gesetzt werden. Dazu ließt er erst einen String aus einer TStringListe ein:

    String zuloeschen;
    zuloeschen = Listendateiname->Strings[0];
    

    und hiermit soll die Datei löschen werden:

    DeleteFile(ExtractFilePath(Application->ExeName)+zuloeschen+".htm");
    

    Nur leider bekomme ich zwei Fehlermeldungen. unter anderem diese
    "cannot convert ansiString to const char*" Muss da vielleicht irgendwas mit "char" gemacht werden?? *dummsei*
    Danke für eure Hilfe!
    MfG, Michi



  • Siehe FAQ unter AnsiString.



  • Danke erstmal, aber das verstehe ich irgendwie nicht...
    Wie sollte das denn dann in meinem Beispiel aussehn? und wieso ist da von einer MessageBox die Rede??? *grübel*



  • Der Builder mag Strings nicht gern addieren

    Versuch's mal mit 'nem AnsiString

    AnsiString FN;
    .
    .
    .
    FN=ExtractFilePath(... EXENAME..);
    FN=FN.operator +(zuLöschen);
    FN=FN.operator +(".HTM");

    Kuck Dir das im Debugger 'mal an (FN prüfen, was drin steht!)



  • warum rufst du die operatoren so komisch auf? lol



  • Damit's gut lesbar wird und einzeln zu debuggen !!! 😃 😃 😃

    In einer Zeile geht's auch (eleganter), aber schlecht zu testen

    Ausserdem geht's bei mir so immer!!!
    :p

    [ Dieser Beitrag wurde am 23.02.2003 um 22:20 Uhr von DerAltenburger editiert. ]



  • das liegt doch garnicht daran. DeleteFile nimmt doch garkein AnsiString, also muss man AnstString.c_str() aufrufen



  • Hab' ich behauptet, DELETEFILE nimmt AnsiString? 😃

    Ich vermute ja nur, dass der Namen nicht stimmt beim Miischii ! 😕

    [ Dieser Beitrag wurde am 23.02.2003 um 22:36 Uhr von DerAltenburger editiert. ]

    [ Dieser Beitrag wurde am 23.02.2003 um 22:36 Uhr von DerAltenburger editiert. ]



  • Mindestens ab BCB5 gibt es eine VCL-Funktion namens DeleteFile, die AnsiString als Parameter erlaubt/verlangt.



  • und wie wird verhindert das es mit der Winapifunktion DeleteFile 2zusammenstößt"?



  • Das wird anhand des übergebenen Parameters entschieden. Wenn du einen AnsiString übergibst wird die VCL-Variante benutzt, bei einem char* die WinAPI-Version.



  • ich glaube, ich bin nicht dafür geboren... Ich habe jetzt das hier eingetippt

    AnsiString FN;
    String zuloeschen;
    .
    .
    .
    zuloeschen = Listendateiname->Strings[0];
    FN=ExtractFilePath(Application->ExeName);
    FN=FN.operator +(zuloeschen);
    FN=FN.operator +(".HTM");
    DeleteFile(FN);
    

    Es kommen aber noch die selben Fehler wie vorher. Wieder diese: "cannot convert ansiString to const char*"! Ich weiß nicht, ob ihr das braucht: Ich hab den BCB 1.0 (leider nur)!
    Wäre euch sehr dankbar, wenn ihr mir Anfänger nochmal helfen könntet!



  • Ich hab den BCB 1.0 (leider nur)!

    dann:

    DeleteFile(FN.c_str());


Anmelden zum Antworten