![]() |
Älteste Datei löschen - Wie ?
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:
Gruß Matthias
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; |
Re: Älteste Datei löschen - Wie ?
1. ein sehr interessantes Einrücksystem weist du da auf. :)
Soweit ich informiert bin ist es so einiges geläufiger:
Delphi-Quellcode:
2. Würde ich dir DRINGENST abraten an den Backups dein Programm zu testen!
if __ then
begin ... end else begin ... end; 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
Delphi-Quellcode:
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! :)
if altdatei<>date then begin;
"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; |
Re: Älteste Datei löschen - Wie ?
Hallo,
ja mein Einrücksystem ist einzigartig :-D Die Prüfung
Delphi-Quellcode:
muß ich ja irgendo machen, zumindest hätte ich das als Sicherheit eingebaut um aus Versehen nicht die aktuelle zu löschen.
if altdatei<>date then begin;
Hiermit
Delphi-Quellcode:
lösch ich den Ordner mit Namen a10
deletefile(a1+'\'+a10);
und hier
Delphi-Quellcode:
den Report der dazu im Verzeichnis ausserhalb des Backups liegt
deletefile(a1+'\'+a10+'.dat');
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 |
Re: Älteste Datei löschen - Wie ?
Das For endet in Zeile 9...
habs nach langem suchen finden können. |
Re: Älteste Datei löschen - Wie ?
Zitat:
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. |
Re: Älteste Datei löschen - Wie ?
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 :bounce2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 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