AGB  ·  Datenschutz  ·  Impressum  







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

Älteste Datei löschen - Wie ?

Ein Thema von matashen · begonnen am 14. Mai 2007 · letzter Beitrag vom 14. Mai 2007
Antwort Antwort
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#1

Älteste Datei löschen - Wie ?

  Alt 14. Mai 2007, 10:25
Hallo zusammen,

ich muß derzeit ein spezielles Backupprogramm schreiben.
Es wird dabei die Information was gespeichert wurde (Report) in eine Datei mit dem Namen des Datums gelegt.
Anschließend erstell ich mit Forcedirectory ein Verzeichnis ebenfalls mit Namen des Datums der Sicherung. In dieses Verzeichnis schaufel ich dann die Daten, die zu sichern sind.
Jetzt das Problem:
Nach einer bestimmten Anzahl Sicherungen soll die älteste Sicherung automatisch gelöscht werden.
Ich hatte dazu folgenden Ansatz, kann das aber momentan nicht ausprobieren. Daher die Bitte mal ansehen und vieleicht bessere Idee mitteilen. hab sowas noch nicht gemacht und möchte nicht aus versehen das falsche Verzeichnis ins Nirvana kicken.

Delphi-Quellcode:
        altdatei:=date;
        aktdatei:=altdatei;
        for i:=0 to filelistbox1.items.count-1 do begin;
            aktdatei:=getdateidatum(filelistbox1.items[i]);
            if aktdatei<altdatei then begin;
                                      altdatei:=aktdatei;
                                      altdateiindex:=i;
                                      end;
            end;
         a10:=filelistbox1.items[altdateiindex];
         label16.caption:=a10;
         if altdatei<>date then begin;
            deletefile(a1+'\'+a10);
            deletefile(a1+'\'+a10+'.dat');
         end;
Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
mace

Registriert seit: 13. Jan 2006
27 Beiträge
 
Delphi 7 Personal
 
#2

Re: Älteste Datei löschen - Wie ?

  Alt 14. Mai 2007, 11:00
1. ein sehr interessantes Einrücksystem weist du da auf.
Soweit ich informiert bin ist es so einiges geläufiger:

Delphi-Quellcode:
if __ then
  begin
    ...
  end
else
  begin
    ...
  end;
2. Würde ich dir DRINGENST abraten an den Backups dein Programm zu testen!
Kopier dir doch den Backupordner komplett weg und teste dann an diesem kopiertem Ordner dein Programm und erst wenn du sicher bist, dass es nur die richtigen Ordner löscht, setzt du es an der Stelle ein, wo die wichtigen Backups liegen.

In dem Code fehlt übrigens ein end;, oder ich erkenn es nicht durch seltsame Einrückungen.

Die Überprüfung
if altdatei<>date then begin; ist an dieser Stelle nicht sinnvoll. Du willst ja nur löschen, wenn die Datei ein bestimmtes Backup"alter" aufweist und nicht immer wenn es älter als das aktuellste ist!
"a10" ist ja dein Ordner + dein Dateiname. Du löschst da erst den Ordner und dann die Datei. Wenn es so rum funktioniert, kannst du das Dateilöschen weglassen. Wenn nicht musst du die 2 Zeilen umdrehn.

PS:
Wenn du die Datei innerhalb des gleichnamigen Ordners löschen willst, musst du übrigens den Ordner ergänzen:


if altdatei<>date then
begin

deletefile(a1+'\'+a10);
deletefile(a1+'\'+a10+'\'+a10+'.dat');
end;
Conscience is what hurts when everything else feels so good.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: Älteste Datei löschen - Wie ?

  Alt 14. Mai 2007, 11:15
Hallo,

ja mein Einrücksystem ist einzigartig

Die Prüfung
if altdatei<>date then begin; muß ich ja irgendo machen, zumindest hätte ich das als Sicherheit eingebaut um aus Versehen nicht die aktuelle zu löschen.

Hiermit
deletefile(a1+'\'+a10); lösch ich den Ordner mit Namen a10
und hier
deletefile(a1+'\'+a10+'.dat'); den Report der dazu im Verzeichnis ausserhalb des Backups liegt
Das Verzeichnis sieht ungefähr so aus
Backup\Station\<Datum_Sicherung>.dat
Backup\Station\<Datum_Sicherung>\gesicherte Daten

mir ging es aber um die Sortierung, ob diese korrekt ist und ob jemand eine Verbesserung weiß.

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.889 Beiträge
 
Delphi 12 Athens
 
#4

Re: Älteste Datei löschen - Wie ?

  Alt 14. Mai 2007, 11:17
Das For endet in Zeile 9...
habs nach langem suchen finden können.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
mace

Registriert seit: 13. Jan 2006
27 Beiträge
 
Delphi 7 Personal
 
#5

Re: Älteste Datei löschen - Wie ?

  Alt 14. Mai 2007, 11:27
Zitat von QuickAndDirty:
Das For endet in Zeile 9...
habs nach langem suchen finden können.
Das is gut, danke!
Ich hatte es nicht gefunden.

Ja, dann versteh ich auch, warum dus mit der altdatei überprüfst, aber es müsste schon geschickter gehn.
Also mit ner FileListbox hab ich noch nicht gearbeitet. Aber sind oder kannst du da die Datein nicht drin sortieren?
Wenn ja, dann nimm doch den ersten Eintrag der FListbox (mit Index[0]) und speicher dir den Wert dieses Ordners. Danach kannst du Ordner und Datei nach dem Wert der Variable löschen.
Conscience is what hurts when everything else feels so good.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
460 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Älteste Datei löschen - Wie ?

  Alt 14. Mai 2007, 13:29
Wenn ich in der Filelistbox sortiere, dann macht der mir das nach Namen, ich brauche aber eine sortierung nach Datum, gibt es ne möglichkeit das umzustellen oder eine andere Art der Handhabung ?

Freu mich auf Antowrt
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:50 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