Skip to main content
Skip table of contents

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
fnfDirName : Erzeugung, Löschung und Namensänderung von Verzeichnissen
fnfAttributes : Änderung von Attributen an Dateien oder Verzeichnissen
fnfSize : Änderung der Dateigröße
fnfLastWrite : Änderung der Eigenschaft "zuletzt geändert" einer Datei
fnfLastAccess : Änderung der Eigenschaft "zuletzt zugegriffen" einer Datei
fnfCreation : Änderung der Eigenschaft "erstellt" einer Datei
fnfSecurity : Änderung in den Sicherheitseinstellungen

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

CODE
| 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,

Weitere Verknüpfungen


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.