![]() |
Datei suchen + löschen
Hi, gibt es vieleicht ne möglichkeit, dass die Dateien in der ListBox nach der suche angezeigt werden und das man dann ein paar dateien auswählt und die dann wenn man auf einen anderen Button klickt, gelöscht werden?
Code:
procedure GetFilesInDirectory(Directory: String; const Mask: String;
List: TStrings; WithSubDirs, ClearList: Boolean); procedure ScanDir(const Directory: String); var SR: TSearchRec; begin if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then try repeat List.Add(Directory + SR.Name) until FindNext(SR) <> 0; finally FindClose(SR); end; if WithSubDirs then begin if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try repeat if (SR.Attr = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') then ScanDir(Directory + SR.Name + '\'); until FindNext(SR) <> 0; finally FindClose(SR); end; end; end; begin List.BeginUpdate; try if ClearList then List.Clear; if Directory = '' then Exit; if Directory[Length(Directory)] <> '\' then Directory := Directory + '\'; ScanDir(Directory); finally List.EndUpdate; end; end; procedure TForm1.Button1Click(Sender: TObject); begin GetFilesInDirectory('C:\', '*.abc', Listbox1.Items, True, True); GetFilesInDirectory('C:\', '*.xyz', Listbox1.Items, True, False); end; |
Re: Datei suchen + löschen
|
Re: Datei suchen + löschen
Das klappt ja.
OK, ein Beispiel: Das Prog findet C:\aaa\bbb.ccc und C:\xxx\yyy.zzz dann schreibt der in die ListBox: C:\aaa\bbb.ccc C:\xxx\yyy.zzz und dann will ich, dass wenn z.B. nur C:\aaa\bbb.ccc markiert ist, der Eintrag irgendwie in DeleteFile(C:\aaa\bbb.ccc) gebracht wird. |
Re: Datei suchen + löschen
Guck dir mal die Eigenschaft
![]() ![]() Im übrigen mehr ein VCL Problem. |
Re: Datei suchen + löschen
Zitat:
Code:
Oder du machst dann halt ne Prozedur mit der du den Dateinamen den du anwählst automatisch in den String lädt.
var
test: string; begin test := listbox1.items[2]; DeleteFile(test); //Edit: Fehler korrigiert. |
Re: Datei suchen + löschen
@ delphman
Ja, fast, aber wie mach ich das wenn 100 gefunden wurden, und ganz verschiedene ausgewählt werden. Also das ich jetzt noch nicht weiss was Selected ist? :?: :?: :?: |
Re: Datei suchen + löschen
In dem du in einer Schleife alle Items prüfst? Und wenn du mehrere findest, dann musst du eben selbst entscheiden, was du machst bzw. was sollden mit allen markierten Items passieren?
|
Re: Datei suchen + löschen
Sollen gelöscht werden. K.P. wie das gehen soll :gruebel:
|
Re: Datei suchen + löschen
Vielleicht geht es so: (Bin mir aber net sicher und kanns grad net austesten)
Also du markierst einen Listbox-Eintrag und klickst dann auf nen Button:
Code:
Weiß aber net obs geht.... :gruebel:
procedure TForm1.Button1Click(Sender: TObject);
var test : String; begin If ( ListBox1.ItemIndex > -1 ) then begin test := ListBox1.Items.Objects[ ListBox1.ItemIndex ]; DeleteFile(test); end; end; |
Re: Datei suchen + löschen
nee, funzt nicht ...
|
Re: Datei suchen + löschen
Hmm.... Wär schon wenn du das etwas näher beschreiben könntest.
Fehlermeldung ? |
Re: Datei suchen + löschen
^^Sorry, war net mehr on
Habs jetzt so gemacht:
Code:
Und nach ausführlichen Tests in meinem Testlabor klappte es dann auch. :wink:
procedure TForm1.Button5Click(Sender: TObject);
var I : Integer; b : string; begin for I:=Listbox1.Items.Count-1 downto 0 do begin if Listbox1.Selected[I] then b := ListBox1.Items[I]; DeleteFile(b); end; end; Weiss einer von euch, wie ich die markierten Einträge dann auch aus der Liste entferne? |
Re: Datei suchen + löschen
Bau einfach noch ein
Code:
mit ein. ;)
ListBox1.Items.Delete(i);
|
Re: Datei suchen + löschen
Ok, jetzt klappt alles wie ichs haben wollte! Danke delphman!!! :-D :-D :-D
|
Re: Datei suchen + löschen
Büdde St.Pauli !!! ;)
:lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 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