AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

problem beim Dateien löschen

Ein Thema von SaFu · begonnen am 11. Jul 2008 · letzter Beitrag vom 17. Jul 2008
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#1

problem beim Dateien löschen

  Alt 11. Jul 2008, 13:39
Tach Delphifreunde

Nach längerer Zeit habe ich mal wieder ne Frage, weil ich absolut ratlos bin und keinen Ansatz finde.

Ich habe in meheren Ordner eine Dateien Strucktur wie im Bild (siehe Anhang).
Die Ordner in den ich diese Strucktur habe lasse ich über eine ShellTreeView anzeigen.

Jetzt will ich alle Dateien löschen die älter sind als "Eingestellte" Tage. Das habe ich auch schon geschaft aber mit einer Lösung die nicht Optimal ist (aus einem anderen Post und angepasst).

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
Var SearchRec :TSearchRec;
begin if FindFirst(ShellTreeView2.Path + '\Stats\Saga\*.*', faAnyFile, SearchRec) = 0 then
  begin
    repeat
     if ((SearchRec.Attr and faDirectory) <> FaDirectory) and (SearchRec.Name <>'.') and (SearchRec.Name <>'..') then
       begin
         if FileDateToDateTime(FileAge(ShellTreeView2.Path + '\Stats\Saga\' + SearchRec.Name)) < (Date - iTagevar) then
        begin
          DeleteFile(ShellTreeView2.Path + '\Stats\Saga\' + SearchRec.Name); // Delete File
        end;
       end;
    until FindNext(SearchRec) <> 0;
  end;
  FindClose(SearchRec);
 Timer1.Enabled:= False;
end;
Und hier meine schwirigkeiten

1. Es wird Immer nur im Ordner gelöscht den ich über die ShellTreeview ausgewählt habe.
2. Es werden auch Dateien nach der einegstellten Zeit gelöscht, die nicht gelöscht werden sollen. (z.b eine Notiz)
3. Es sollen nur Dateien gelöscht werden die nur das Datum + Dateiname haben
4. Ich möchte anhand des Datums aus dem Dateinamen diese Prüfung auf Alter der Datei vornehmen.

Hoffe es kann mir jemand helfen

Gruss Sascha
Miniaturansicht angehängter Grafiken
dateien_101.jpg  
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:03
Zitat von fuknersascha:
Tach Delphifreunde
Tach Delphifreund.

Zitat von fuknersascha:
1. Es wird Immer nur im Ordner gelöscht den ich über die ShellTreeview ausgewählt habe.
Das ist doch gut so. Oder will du auch Unterordner leer räumen?
Dann solltest die du die Timer1Timer-Procedure erst ma in eine eigene Procedure packen, mit dem "Startordner" als Parameter (in deinem Fall "ShellTreeView2.Path + '\Stats\Saga\").

Mit (SearchRec.Attr and faDirectory) kriegst du ja raus, ob es sich um einen Unterordner handelt.
Ist dies der Fall, rufst du die gleiche Produrce rekusiv noch einmal auf, mit dem Unterorder als neuen Startordner-Parameter.

Zitat von fuknersascha:
2. Es werden auch Dateien nach der einegstellten Zeit gelöscht, die nicht gelöscht werden sollen. (z.b eine Notiz)
Könnte es sein, das du ein Winter-Sommerzeit-Problem hast. Ich glaube FileDateToDateTime gibt dir nur die CET-Zeit zurück, ohne Winter-Somerzeit zu berücksichtigen. Welche Dateien werden typischer Weise gelöscht, die nicht hätten gelöscht werden dürfen? Notizen kann ich aus deinem Screenshot nicht erkennen.

Zitat von fuknersascha:
3. Es sollen nur Dateien gelöscht werden die nur das Datum + Dateiname haben
Dann solltest du auch auf den Dateinamen prüfen.

Zitat von fuknersascha:
4. Ich möchte anhand des Datums aus dem Dateinamen diese Prüfung auf Alter der Datei vornehmen.
Dann wandle die ersten 10 Zeiten des Dateinames in eine Datum und verleiche das.
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:13
Danke für die Antworten

zu1. Naja habe ich so halbwegs verstanden werde ich mal versuchen

zu2. Das mit der Zeit habe ich blöd ausgedrückt. Die Winterzeit und so weiter ist egal. Es wird einfach z.B 13:00 uhr eingestellt und dann wird der Timer1 um 13:00 ausgelöst.
Bis jetzt keine Notizen drin und auch andere Dateien will nur vorsorgen falls mal einer was wichtiges in diesem Ordner ablegt und dann wäre es Blöd wenn dieses dann irgendwann aufeinmal weg wäre.

zu3+4. Da habe ich ja die schwirigkeiten da finde ich irgenwie keinen Ansatz
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:19
Schau Dir mal FormatDateTime an.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:26
Nochmal zu dem Punkt 1.

Habe ich glaube, hab ich doch nicht so verstanden, denn es soll auch in dem Timer alle Ordner der ShellTreeView durch gegeangen werden, wenn da eine Datei enthalten ist mit dem enstprechenden Dateinamen und Format und die älter ist mit der Eingestellten Zeit, dann soll gelöscht werden.
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:29
Das geht am besten rekursiv. Irgendwo in der DP geistert die Funktion Hier im Forum suchenFindAllFiles herum, die kannst Du ja als Ansatz nehmen und anpassen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:31
Passen die Datenformate denn überhaupt zusammen?
if FileDateToDateTime(FileAge(ShellTreeView2.Path + '\Stats\Saga\' + SearchRec.Name)) < (Date - iTagevar)
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:36
Ja in diesem Fall passt es zusammen und es funktionirt auch wunderbar.

Bei dieser Procedure ist halt nur das Problem das alles gelöscht wird.

Und wenn das Bild meiner Oma drin ist wird es auch irgendwann gelöscht, was es aber nicht so ausser es hat einen Dateinamen der so aufgebaut ist wie im Anhang.
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 14:40
Du hast doch 3 Kriterien, die es zu prüfen gilt:
1. Erstellungsdatum
2. Anfang des Dateinamens
3. Dateiendung

1. scheint ja schon zu klappen, für 2. kannst Du etwas in der Artif Pos(FormatDateTime('yyyy mm dd',now),Rec.Name) = 1 then versuchen, und für 3.if AnsiLowerCase(ExtracFileExt(Rec.Name)) = Deine_Endung_in_Kleinschreibung then . Sollte funktionieren
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 15:03
Ich würde mir einfach mal ein Flussdiagramm zeichnen. Bei komplexen Abläufen mit komplexeren Abfragen immer sehr hilfreich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz