Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Dateiendung Überwachen ??

  Alt 2. Apr 2004, 09:07
Wie groß ist denn das zu überwachende Verzeichnis - also wieviele Dateien/Unterverzeichnisse sind dort drin?

Du kannst ja auch jede Minute diese Entsprechenden Dateien suchen und z.B in ein Array schreiben und diesees Array dann 4 Minuten Später nochmal abarbeiten und die Dateien umdenennen

Also einen Timer (intervall=6000):
* Dateien im Array_3 umbenennen (... nach '.bel')
* Array_2 nach Array_3 kopieren
* Array_1 nach Array_2 kopieren
* Dateien Suchen und in Array_1 schreiben

* (so werden alle Dateien nach 3 bis 3,9999... Minuten bearbeitet)
* (wenn eine Datei nicht umbenannt werden konnte, so wird es nach einer Minute nochmal versucht)
* ...


Es gibt auch 'ne Möglichkeit Verzeichnisse zu überwachen (da bekommt dann das eigene Programm 'ne Meldung, das ich im überwachten Verzeichnis was geändert hat. - allerdings muß das Verzeichnis, soweit ich weiß, dennoch selber auf Änderungen untersucht werden)

Aber ich denke mal, dass der obere Weg einfacher sein dürfte (das Suchen, Umbennenen u.s.w. muß nur in weniger als einer Minute abgeschlossen sein, aber das dürfte ja eh nicht sooo lange dauern)


Das/Beim Umbenennen:
z.B. ein Memo mit 'nem Label (Caption="Dateien, die nicht umbenannt werden konnten") drüber

Delphi-Quellcode:
If FileExists(Verzeichnis + SearchRec.Name) and
  not RenameFile(Verzeichnis + SearchRec.Name,
  ChangeFileExt((Verzeichnis + SearchRec.Name), '.bel')) Then Begin
    {nachfollgendes nur, wenn eine Datei nicht umbenannt werden konnte}
    Memo1.Lines.Add(TimeToStr(Now) + ' ' + Verzeichnis + SearchRec.Name'); // Uhrzeit + Dateiname eintragen
Beep; // das Proggramm gibt
'nen Ton (Beep) von sich
End;
FileExists ist, da in den oberen Array's die Dateien nach 3 Minuten ja in allen Arrays drin stehen, da sie ja 3 Munuten lang gefunden werden.
Also das die Dateien auch nochmal drin sind, nachdem sie umbenannt wurden und somit eigentlich nicht mehr unter diesem Namen existieren. (Mann könnte zwar abfragen, ob die Datei noch nicht in einem anderen Array drin ist und diese dann nichtmehr eintragen) Aber das hat auch den Vorteil, das bei einem Fehler (wenn z.B. die Datei vorher nicht umbenannt werden konnte) immer wieder (jede Minute) versucht wird, diese umzubennen.
$2B or not $2B
  Mit Zitat antworten Zitat