![]() |
gefundenes file löschen
Hi.... :-D
bin grad ein prog am coden und hab dabei ein prob. Es soll aus einem Memo eine Dateiendung ausgelesen werden, dann ein verzeichnis nach dieser Endung durchsucht werden und alle ergebnisse gelöscht und in einer listbox ausgeben werden. hier erstma die procedure in ders irgendwo an irgendwas mangelt :-)
Delphi-Quellcode:
procedure TfrmAufraeumen.getall(mask: string);
var search: TSearchRec; verz, such, ext: string; i: integer; begin myList := TStringList.create; verz:=ExtractFilePath( mask ); such:=ExtractFileName( mask ); if verz[ Length(verz) ]<>'\' then verz := verz + '\'; i:=0; while i < memEndungen.Lines.Count -1 do begin ext:= '*' + memEndungen.Lines.Strings[1]; {Alle Dateien suche} if findfirst( verz +'+'+ ext ,$3F,search ) = 0 then repeat myList.Add(verz + search.Name ); //gefundenes file auflisten SysUtils.DeleteFile(verz + search.Name); //gefundenes file löschen until FindNext( search ) <> 0; inc(i); FindClose( search ); end;// end; und hier noch ma der ganze code, falls andere fragen auftreten.
Delphi-Quellcode:
sorry aber ich komm einfach net weiter.....vielleicht habt ihr ja lust und zeit zu helfen......
var
frmAufraeumen: TfrmAufraeumen; myList: TStringList; implementation uses uRundesFenster; {$R *.DFM} procedure TfrmAufraeumen.btnPfadAuswahlClick(Sender: TObject); begin if OpenDialog.Execute then begin edPfad.Text := ExtractFilePath(OpenDialog.FileName); end else begin edPfad.Text := ''; end;//if... end; procedure TfrmAufraeumen.btn_searchClick(Sender: TObject); begin getall(edPfad.Text); if edPfad.text[ Length(edPfad.text) ]<>'\' then edPfad.text := edPfad.text + '\'; ListBox1.Items.Assign(myList); myList.Free; end; procedure TfrmAufraeumen.getall(mask: string); var search: TSearchRec; verz, such, ext: string; i: integer; begin myList := TStringList.create; verz:=ExtractFilePath( mask ); such:=ExtractFileName( mask ); if verz[ Length(verz) ]<>'\' then verz := verz + '\'; i:=0; while i < memEndungen.Lines.Count -1 do begin ext:= '*' + memEndungen.Lines.Strings[1]; {Alle Dateien suche} if findfirst( verz +'+'+ ext ,$3F,search ) = 0 then repeat myList.Add(verz + search.Name ); //gefundenes file auflisten SysUtils.DeleteFile(verz + search.Name); //gefundenes file löschen until FindNext( search ) <> 0; inc(i); FindClose( search ); end;// end; procedure TfrmAufraeumen.Button1Click(Sender: TObject); begin ListBox1.Clear; end; end. erstmal vielen dank im vorraus.. mfg sven |
Re: gefundenes file löschen
1. du übergibst ja der Prozedur ein Verzeichnis - wieso entfenst du dann von diesem das letzte Unterverzeichnis?
Delphi-Quellcode:
2. beginnen alle Dateien, die du suchen und löschen willst ein Plus am Dateianfang?
verz:=ExtractFilePath( mask );
such:=ExtractFileName( mask );
Code:
3. das würde ja schon ausreichen:
findfirst( verz +[color=red]'+'[/color]+ ext ...
Delphi-Quellcode:
ich mach erstmal hier Schluß, wenn das soweit stimmt, dann können wir ja weitermachen ^^ (muß jetzt mal weg)
while i < memEndungen.Lines.Count -1 do begin
{Alle Dateien suche} if findfirst( verz + '*' + memEndungen.Lines.Strings[1] ,$3F,search ) = 0 then |
Re: gefundenes file löschen
@ himitsu: die sache mit dem '+' hab ich total übersehen...--- :wall: ....funzt nu alles.....vielen dank
jetzt muss ich das ganze nur noch rekursiv durchführen lassen......falls mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 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-2025 by Thomas Breitkreuz