![]() |
Nach Dateityp suchen und dann löschen
Hi,
ich schaffe es so rekursiv nach Dateien zu suchen, jedoch möchte ich nicht, dass sie nur gesucht werden, sie sollen auch gleich gelöscht werden!
Delphi-Quellcode:
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 and not 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 and faDirectory) = 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; Ich hoffe mir kann jemand daraus eine Abänderung machen, dass sie also die Prozedur gleich auch noch die Dateien löscht. Als Verwendungsbeispiel:
Delphi-Quellcode:
Am Besten wäre natürlich dass man einfach noch ein Boolean Wert hinzufügen könnte :). Vielleicht geht dass auch mit ner For Schleife mit der Listbox dann aber ich glaube dass dauert dann viel länger oder?
GetFilesInDirectory('C:\', '*.*', Listbox1.Items, False, True);
MFG Lars Wiltfang |
Re: Nach Dateityp suchen und dann löschen
nach List.Add() einfach DeleteFile aufrufen, oder habe ich etwas überlesene?
|
Re: Nach Dateityp suchen und dann löschen
Alos ich soll unter diese Zeile:
List.Add(Directory + SR.Name) Das hier hinzufügen: DeleteFile(Directory + SR.Name) ??? |
Re: Nach Dateityp suchen und dann löschen
IPO --> IPO
Dateien suchen und zwischenspeichern (mit pfaden), in der zweiten phase den zwischenspeicher abarbeiten. IPO bitte nicht vermischen. |
Re: Nach Dateityp suchen und dann löschen
Danke es geht!!! :):):):):) Vielen Vielen Dank, ich dachte ich müsste die Idee von mir jetzt schon aufgeben^^
|
Re: Nach Dateityp suchen und dann löschen
Geht doch nicht :( Es werden zwar Daten gelöscht aber immer nur die die nicht in einem Unterverzeichniss liegen, wass muss ich machen?
|
Re: Nach Dateityp suchen und dann löschen
Zitat:
Du hast den Eintrag doch schon gefunden. Warum löschst Du ihn dann nicht gleich, anstatt ihn in eine Liste einzufügen? |
Re: Nach Dateityp suchen und dann löschen
Zitat:
Delphi-Quellcode:
repeat
List.Add(Directory + SR.Name); DeleteFile(Directory + SR.Name); until FindNext(SR) <> 0; |
Re: Nach Dateityp suchen und dann löschen
Und wo ist vom Code her jetzt ein Unterschied, mein Problem ist ja jetzt dass der Inhalt Unterordner nicht gelöscht wird!
|
Re: Nach Dateityp suchen und dann löschen
Zitat:
Delphi-Quellcode:
Dein Aufruf ist, ist das auch kein Wunder. Vielleicht solltest Du mal schauen, was der Parameter "WithSubDirs" macht, den Du mit false belegst...
GetFilesInDirectory('C:\', '*.*', Listbox1.Items, False, True);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 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