![]() |
Re: problem beim Dateien löschen
Hallo fuknersascha,
du schreibst, Du hättest folgende Probleme: Zitat:
zu 2. Was heißt "nach" der eingestellten Zeit? Du vergleichst ja zwei "Datumse" ist "nach" dann "kleiner als" oder "größer als"? z.Zt löschst Du alles dessen Dateidatum kleiner als der Stichtag ist. (Minuten und Sekunden schenken wir uns mal) zu 3. Welchen Dateinamen? Du suchst nach *.* und übergibst den gefundenen Dateinamen an Deine Löschroutine. Da ist hinterher das Verzeichnis ziemlich leer. Entweder du machst gleich beim Dateisuchen die richtige Einschränkung (*.BAK, LöDa*.*, *.?bd....) oder aber Du testest vor dem Löschen den Dateinamen auf Richtigkeit (#9DeddyH) zu 4. Falls ein Datum im Dateinamen vorhanden ist, dann ist das etwas, was wie ein Datum aussieht, aber kein Datum ist! Für Zeitangaben gibt es ganz spezielle Typen und Strings gehörten bisher nicht dazu. Wenn du wirklich eine Datums-Darstellung im Dateinamen untergebracht hast, in welcher Beziehung steht diese dann zu dem "richtigen" Dateidatum? Gruß K-H |
Re: problem beim Dateien löschen
Ich bin es nochmal wegen dem Problem ich komm da nicht so richtig weiter.
Es ist besser wenn ich versuche erstmal Punkt 1 zu lösen. Und zwar möchte ich jeden Ordner in der ShellTreeView durchsuchen aber mit dem erweiterten pfad.
Delphi-Quellcode:
und da es ja auch mehr oder weniger Ordner werden können sollte es automatisch gehen, besser gesagt auf knopfdruck würde ich gerne alle Ordner durchgehen.
ShellTreeView2.Path + '\Stats\Saga\ // in dem letzten Ordner liegen dann die Dateien
Muss ich das jetzt in eine Schleife legen?? |
Re: problem beim Dateien löschen
So hab ich jetzt geschaft
Delphi-Quellcode:
Es werden alle Ordner der ShellTreeView durchgegangen.
procedure TForm1.Button7Click(Sender: TObject);
Var iDurchlauf :Integer; begin for iDurchlauf:= 1 to ShellTreeView2.Items.Count - 1 do begin ShellTreeView2.Select(ShellTreeView2.Items[iDurchlauf]); end; end; Und wie stelle ich es jetzt an, das ich heraus finde welche Ordner gelöscht werden können, stelle mir das irgendwie so vor:
Delphi-Quellcode:
So wie berechne ich das ganze jetzt das immer geprüft wird auf Alter des Dateinamens.
for alle Dateien durchgehen do
if (2008 05 24 + *.*) < als z.b 90 Tage bitte löschen. // Vorne das ist die Datei(en) Es wäre echt nett wenn mir jemand helfen könnte, hänge jetzt schon 3 Wochen an dem Problem |
Re: problem beim Dateien löschen
Zitat:
[dp]Wie kann ich Erzeugungsdatum einer Datei ermitteln ?[/dp] |
Re: problem beim Dateien löschen
Danke ertmal das du mir Antwortest
Zitat:
hab mal bissel weiter gemacht und das sieht jetzt so aus vielleicht erklärt das alles Ich denke das ich auf dem richtigen weg bin
Delphi-Quellcode:
jetzt habe ich das problem das mir das Datum im Dateiname 2 mal angezeigt wird
procedure TForm1.Button7Click(Sender: TObject);
Var iDurchlaufi,TageVar :Integer; SearchRec : TSearchRec; begin IiTageVar:= SpinEdit.Value; // Auswhl der Tage von 30-200 for iDurchlauf:= 1 to ShellTreeView2.Items.Count - 1 do begin ShellTreeView2.Select(ShellTreeView2.Items[iDurchlauf]); AbDatumloeschen:= FormatDateTime('yyyy mm dd',Date- iTagevar); Label10.Caption:= (AbDatumLoeschen); if findfirst(ShellTreeView2.Path +'\Stats\Saga\'+ AbDatumLoeschen + ' *.*',faAnyFile,SearchRec) = 0 then begin showmessage(ShellTreeView2.Path +'\Stats\Saga\'+ AbDatumLoeschen + SearchRec.Name); DeleteFile(ShellTreeView2.Path +'\Stats\Saga\'+ AbDatumLoeschen + SearchRec.Name); end; end; end; |
Re: problem beim Dateien löschen
dann liegt das doch wohl am erstellen der dateien (dateiname) und nicht am löschen!!
erstellt der user die dateien selbst oder erstellst du die (dann zeig doch mal den code davon)?? |
Re: problem beim Dateien löschen
die Datei erzeugt ein Server und das Tag für Tag
jetzt Funktioniert das löschen auch schon da die richtige Datei gefunden wird
Delphi-Quellcode:
Soweit hab ich es jetzt nur 1 geht noch nicht
procedure TForm1.Button7Click(Sender: TObject);
Var iDurchlauf :Integer; SearchRec : TSearchRec; begin for iDurchlauf:= 1 to ShellTreeView2.Items.Count - 1 do begin ShellTreeView2.Select(ShellTreeView2.Items[iDurchlauf]); AbDatumloeschen:= FormatDateTime('yyyy mm dd',Date- iTagevar) ; Label10.Caption:= (AbDatumLoeschen); if findfirst(ShellTreeView2.Path +'\Stats\Saga\'+ AbDatumLoeschen + '*.*',faAnyFile,SearchRec) = 0 then begin repeat showmessage(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); DeleteFile(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); until FindNext(SearchRec) <> 0; end; end; end; Wie mache ich es das alle Dateien die < als "AbDatumloeschen" sind gelöscht werden |
Re: problem beim Dateien löschen
Hallo,
dann darfst Du (leider) nur mit *.* suchen und musst den Vergleich auf kleiner/gleich mit dem Dateinamen durchführen, d. h.: Für jede gefundenen Datei abfragen, ob SearchRec.Name < AbDatumloeschen ist. Wenn der Dateiname immer in der Form YYYY MM DD ist, mag das sogar mit einem Stringvergleich funktionieren.
Delphi-Quellcode:
Stephan
if findfirst(ShellTreeView2.Path +'\Stats\Saga\*.*',faAnyFile,SearchRec) = 0 then
begin repeat if SearchRec.Name < AbDatumloeschen then begin showmessage(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); DeleteFile(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); end; until FindNext(SearchRec) <> 0; end; |
Re: problem beim Dateien löschen
Danke genau das war es
Überprüft etwa SearchRec auch nur teilstrings??? |
Re: problem beim Dateien löschen
Hallo,
SearchRec prüft garnichts, dort sind immer der zuletzt von FindFirst und FindNext gefundene Dateiname und die übrigen Dateiinformationen enthalten. Na, in meinem Quelltext oben war eine kleine "Unschärfe". Es soll ja ab AbDatumloeschen (also einschließlich) gelöscht werden, daher muss es
Delphi-Quellcode:
und nicht
if SearchRec.Name <= AbDatumloeschen then
begin showmessage(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); DeleteFile(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); end;
Delphi-Quellcode:
heißen.
if SearchRec.Name < AbDatumloeschen then
begin showmessage(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); DeleteFile(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name); end; Stephan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 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