![]() |
DeleteFiles + FindNext
Ich möchte alle *.txt Dateien in einem bestimmten Ordner in C:\... löschen.
Mein Code:
Delphi-Quellcode:
Mein Problem:
procedure TFmDeleteVocabularies.BtDeleteVoksClick(Sender: TObject);
var //Variablen für die Schleife SearchRec: TSearchRec; r: Integer; //Variablen Ende begin MeDelVoks.Clear; MeDelVoks.Lines.Add('Folgende Dateien wurden gefunden: '); //Schleife r := FindFirst('C:\voctester_tmp\Vocabularies\Deutsch\*.TXT', faAnyFile,SearchRec); while r = 0 do begin MeDelVoks.Lines.Add(SearchRec.Name); DeleteFile(SearchRec.Name); r := FindNext(SearchRec); end; FindClose(SearchRec); ShowMessage('Dateien wurden gelöscht'); //Schleife Ende end; Es geschieht einfach nichts! Pfad hab ich schon überprüft. Kann mir jemand helfen? Mfg Ghost |
Re: DeleteFiles + FindNext
Warum überprüfst du den Rückgabewert von DeleteFile nicht? Und guck doch mal was in SearchRec.Name steht. dann findest du deinen Fehler auch selber.
Delphi-Quellcode:
Und dann guck mal, was da steht.
if not DeleteFile(...) then
ShowMessage(SysErrorMessage(GetLastError)); |
Re: DeleteFiles + FindNext
Danke für die schnelle Antwort. "System kann die Datei nicht finden."
Der Dateipfad stimmt! Hat es dann etwas damit zu tun, dass ich nicht SearchRec.Name benutzen darf? Aufgelistet wird SearchRec.Name so zB.: Hallo.TXT ... Wie überprüft man den SearchRec.Name? Das ist doch der Name der gefundenen Datei, wenn ich micht nicht irre.? |
Re: DeleteFiles + FindNext
Richtig, der Name der Datei. Und wo ist der Pfad?
|
Re: DeleteFiles + FindNext
Ich habs so verstanden:
Delphi-Quellcode:
Also oben hab ich den Pfad angegeben und zwar so, das alle Textdateien gemeint sind.
r := FindFirst('C:\voctester_tmp\Vocabularies\Deutsch\*.TXT', faAnyFile,SearchRec);
<-- Hier gibt man den Pfad an while r = 0 do begin MeDelVoks.Lines.Add(SearchRec.Name); DeleteFile(SearchRec.Name); {Error Code?} if not DeleteFile(SearchRec.Name) then ShowMessage(SysErrorMessage(GetLastError)); <-- Hier entscheidet man was mit jeder gefundenen Datei geschieht. {Weiter zur nächsten Datei} r := FindNext(SearchRec); end; War das falsch? |
Re: DeleteFiles + FindNext
Und wo ist er bei DeleteFile? Die Fehlermeldung hat dir doch schon gesagt, dass die Datei nicht gefunden wurde. Rat mal warum.
|
Re: DeleteFiles + FindNext
Ja deswegen hab ich den Pfad doch oben angegeben. Damit er für ALLE Dateien gilt.
Muss ich den Code so ändern?:
Delphi-Quellcode:
DeleteFile('C:\voctester_tmp\Vocabularies\Deutsch\*.TXT');
|
Re: DeleteFiles + FindNext
Zitat:
Knapp da neben ist auch vorbei. Probiere es aus. |
Re: DeleteFiles + FindNext
DeleteFile('C:\voctester_tmp\Vocabularies\Deutsch\ *.TXT' +SearchRec.Name);?
Edit: nein klappt nicht ... |
Re: DeleteFiles + FindNext
Delphi-Quellcode:
€: Dein
DeleteFile('C:\voctester_tmp\Vocabularies\Deutsch\' +SearchRec.Name);
Delphi-Quellcode:
würde z.B. C:\voctester_tmp\Vocabularies\Deutsch\*.TXTTest.tx t ausgeben...
DeleteFile('C:\voctester_tmp\Vocabularies\Deutsch\*.TXT' +SearchRec.Name);
€²: Wir hams wohl beide verraten ;D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz