AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Dateien älter als X Minuten löschen, aber ...

Dateien älter als X Minuten löschen, aber ...

Ein Thema von kuba · begonnen am 20. Sep 2016 · letzter Beitrag vom 27. Sep 2016
Antwort Antwort
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#1

Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 19:33
Hallo,

ich habe ein Verzeichnis, dem ständig neue Dateien hinzugefügt werden. Einige Dateien möchte ich regelmäßig löschen, aber nicht alle. Wenn eine bestimmte Anzahl Dateien vorhanden ist möchte ich die Ältesten löschen, aber es soll immer eine Mindestmenge vorhanden bleiben.

Beispiel:

Wenn mehr als 100 Dateien vorhanden sind -> die ältesten löschen - bis auf 50 ...

Jemand eine Idee wie das möglichst einfach geht ??

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 19:41
Windows stellt da eine Art "Event" zu Verfügung - ReadDirectoryChangesW:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Vielleicht kommt das ja für Dich in Frage, um Änderungen am Verzeichnis mitzubekommen. Mitzählen müsstest Du dann halt selbst und bei Bedarf mittels FindFirst / FindNext / FindClose die Dateien listen und löschen. Es gibt verschiedene Delphi-Adaptionen dieser API, eine z.B. hier:
http://www.osnews.com/story/7376/A_D...ass_For_Delphi
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.990 Beiträge
 
Delphi 12 Athens
 
#3

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 19:43
Liste der Dateien mit Name und Datum einlesen, nach Datum sortieren, in einer Schleife in der Liste ab Position 51 löschen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 19:53
Windows stellt da eine Art "Event" zu Verfügung - ReadDirectoryChangesW:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Vielleicht kommt das ja für Dich in Frage, um Änderungen am Verzeichnis mitzubekommen. Mitzählen müsstest Du dann halt selbst und bei Bedarf mittels FindFirst / FindNext / FindClose die Dateien listen und löschen. Es gibt verschiedene Delphi-Adaptionen dieser API, eine z.B. hier:
http://www.osnews.com/story/7376/A_D...ass_For_Delphi
Vielen Dank, das ist eine Super Idee !
Konkret möchte ich einen Mediaplayer programmieren, bei dem man per Handy App Fotos hochladen kann, die dann in eine Wiedergabeliste aufgenommen werden und abgespielt werden.
Durch die Funktion kam ich gerade auf eine viel bessere Idee, sobald die "100" überschritten werden lösche ich die 50 aus der aktuellen Playlist. Die habe ich in einer Listbox und kann ganz gezielt die Dateien der alten Playlist löschen.

Trotzdem werde ich nochmal den Ansatz verfolgen die Änderungen im Directory auszuwerten ...
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 20:02
Liste der Dateien mit Name und Datum einlesen, nach Datum sortieren, in einer Schleife in der Liste ab Position 51 löschen.
Genau das wollte ich eigentlich machen. Ich hab eine JAM Shellbrowser Komponente, damit müsste es mit dem Sortieren nach Datum recht einfach gehen. Ich teste das mal, ist ein Demo dabei ...
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 20:15
Ich mach es wahrscheinlich so, daß ich die Dateien der "aktuellen" Playlist lösche sobald das Maximum an Dateien überschritten wurde. Würde ich immer 50 übrig lassen könnte es passieren dass 101 Dateien vorhanden sind und Datei 51 gelöscht wird obwohl sie noch nicht in einer Playlist verarbeitet wurde ...
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#7

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 20:30
Zitat:
obwohl sie noch nicht in einer Playlist verarbeitet wurde ...
Bitet sich hier nicht wunderbar eine ObjectList an, in der man alle Objekte mit sämtlichen Informationen speichert? Besonders aber, ob Objekt X schon verarbeitet wurde oder nicht.
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 20. Sep 2016, 20:37
Ich arbeite mit dem VLC-Player. Leider habe ich noch nicht herausgefunden, wie man mit libvlc dem Player einen Titel hinzufügt ohne den Player zu beenden. Wenn man den VLC-Player mit Kommandozeilenparameter aufruft kann man mehrere Titel als Playlist übergeben. Das sieht etwa so aus:

C:\Temp\KIOSK>"C:\Program Files\VideoLAN\VLC\vlc.exe" file:///C:/Temp/KIOSK/20160913_153024.jpg file:///C:/Temp/KIOSK/20160913_153035.jpg file:///C:/Temp/KIOSK/20160913_153047.jpg file:///C:/Temp/KIOSK/20160913_153120.jpg file:///C:/Temp/KIOSK/20160913_153131.jpg file:///C:/Temp/KIOSK/20160917_180642.jpg file:///C:/Temp/KIOSK/20160917_204202.jpg file:///C:/Temp/KIOSK/20160917_204332.jpg --fullscreen --no-video-title-show --image-duration=5 --key-quit=q --loop

Mit der libvlc habe ich das leider noch nicht geschafft. Einzelne Titel übergebe ich mit "libvlc_media_new_path".
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Dateien älter als X Minuten löschen, aber ...

  Alt 27. Sep 2016, 19:43
Hallo,

ich habe in der Entwickler-ecke einen funktionierenden Source Code gefunden, der mich ans Ziel gebracht hat.

Vielleicht hilft es ja auch anderen ...

KUBA
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
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 14:42 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