TBeCbFolderWatch
TBeCbFolderWatch
Klasse zur Überwachung von Änderungen im Windows-Dateisystem
Eigenschaften:
Allgemeine-Eigenschaften
CbDirectory:C | Pfad des Ordners, der überwacht werden soll |
CbWatchSubFolders:L | Unterordner überwachen |
CbWatchNotifyFilters:N | Aufzählung der Datei-Aktionen, die überwacht werden sollen. Mögliche Werte sind fnfFileName : Erzeugung, Löschung und Namensänderung von Dateien |
CbActive:L | Aktivieren bzw. Deaktivieren der Überwachung |
Events
CbOnActiveChanged | Tritt auf, wenn der Überwachungsthread startet bzw. endet |
CbOnWatchNotify | Tritt auf, wenn ein Überwachungsereignis auftritt. Einziger Parameter des Events ist ein Objekt der Klasse TBeCbFolderWatchNotifyObj, welches Informationen über das aufgetretene Ereignis enthält |
Hinweis
Da die Überwachung in einem Hintergrund-Thread läuft, bedeutet die Aktivierung der Überwachung per CbActive := True nicht den unmittelbaren Start der Überwachung. Änderungen am Aktiv-Status werden über das Event CbOnActiveChanged mitgeteilt.
Die Eigenschaft CbActive wird dementsprechend gesetzt.
Die Überwachung sollte vom Codeblock vor Programm-Ende beendet werden. (CbActive := false)
Verwendung:
Die Klasse sollte im Kontext eines Formulars genutzt werden, da das Codeblock-Programm auf die
Beispiel
| oForm, oMemo, oWatchFolder |
//******************************************************************************
// Event: Folder-Watch-Notify ist aufgetreten
//******************************************************************************
function FolderWatchWatchNotify(aSender)
| cActionText |
cActionText := FormatDateTime('HH:MM:SS', Now()) + ': ' + aSender.CbDirectory + ' / ' + aSender.CbFileName + ' => ' + aSender.CbActionText,
CollAdd(oMemo.Lines, cActionText),
end,
startseq,
oForm := CreateObject('TFormEx'),
startseq
oForm.Font.Name := 'Segoe UI',
oForm.OrigCapt := 'FolderWatch - Verzeichnis-Überwachung',
// Memo zur Anzeige der Events
oMemo := CreateObject('TMemo', 'Memo', oForm, oForm),
oMemo.Align := alClient,
oMemo.ScrollBars := 2,
CollDelete(oMemo.Lines, 1),
oMemo.Color := clInfoBk,
// Folder-Watch erstellen
oWatchFolder := CreateObject('TBeCbFolderWatch', 'WATCH'),
oWatchFolder.CbDirectory := 'C:\',
oWatchFolder.CbWatchSubFolders := true,
oWatchFolder.CbWatchNotifyFilters := fnfLastWrite,
AssignEvent(oWatchFolder, 'CbOnWatchNotify', 'FolderWatchWatchNotify'),
oWatchFolder.CbActive := true,
ShowModal(oForm),
always
startseq,
oWatchFolder.CbActive := false,
onerror,
stopseq,
DestroyObject(oForm),
stopseq,
onerror,
MessageDlg('Fehler: ' + crlf + GetErrorText()),
stopseq,