AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

problem beim Dateien löschen

Ein Thema von SaFu · begonnen am 11. Jul 2008 · letzter Beitrag vom 17. Jul 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#11

Re: problem beim Dateien löschen

  Alt 11. Jul 2008, 16:06
Hallo fuknersascha,

du schreibst, Du hättest folgende Probleme:
Zitat:
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.
zu 1. Da gibt es Lösungen wie Sand am Meer ich meine in den Delphi Beispielen findest Du auch etwas dazu.

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
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

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

Re: problem beim Dateien löschen

  Alt 15. Jul 2008, 13:14
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.

 ShellTreeView2.Path + '\Stats\Saga\ // in dem letzten Ordner liegen dann die Dateien 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.

Muss ich das jetzt in eine Schleife legen??
"... 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 SaFu
SaFu

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

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 10:22
So hab ich jetzt geschaft

Delphi-Quellcode:
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;
Es werden alle Ordner der ShellTreeView durchgegangen.

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:
for alle Dateien durchgehen do
if (2008 05 24 + *.*) < als z.b 90 Tage bitte löschen. // Vorne das ist die Datei(en)
So wie berechne ich das ganze jetzt das immer geprüft wird auf Alter des Dateinamens.

Es wäre echt nett wenn mir jemand helfen könnte, hänge jetzt schon 3 Wochen an dem Problem
"... 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
Butch87

Registriert seit: 3. Mai 2007
70 Beiträge
 
#14

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 11:33
Zitat von fuknersascha:
Alter des Dateinamens
was meinst du damit?!? das erstellungsdatum der datei?!
[dp]Wie kann ich Erzeugungsdatum einer Datei ermitteln ?[/dp]
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

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

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 11:51
Danke ertmal das du mir Antwortest


Zitat von Butch87:
Zitat von fuknersascha:
Alter des Dateinamens
was meinst du damit?!? das erstellungsdatum der datei?!
[dp]Wie kann ich Erzeugungsdatum einer Datei ermitteln ?[/dp]
Nein das meine ich nicht damit funktioniert es ja auch schon

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:
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;
jetzt habe ich das problem das mir das Datum im Dateiname 2 mal angezeigt wird
"... 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
Butch87

Registriert seit: 3. Mai 2007
70 Beiträge
 
#16

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 12:15
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)??
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

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

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 12:48
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:
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;
Soweit hab ich es jetzt nur 1 geht noch nicht

Wie mache ich es das alle Dateien die < als "AbDatumloeschen" sind 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
nahpets
(Gast)

n/a Beiträge
 
#18

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 14:30
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:
     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;
Stephan
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

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

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 14:40
Danke genau das war es

Überprüft etwa SearchRec auch nur teilstrings???
"... 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
nahpets
(Gast)

n/a Beiträge
 
#20

Re: problem beim Dateien löschen

  Alt 17. Jul 2008, 15:26
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:
if SearchRec.Name <= AbDatumloeschen then
 begin
  showmessage(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name);
  DeleteFile(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name);
end;
und nicht

Delphi-Quellcode:
if SearchRec.Name < AbDatumloeschen then
 begin
  showmessage(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name);
  DeleteFile(ShellTreeView2.Path +'\Stats\Saga\'+ SearchRec.Name);
end;
heißen.

Stephan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 12:11 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