A customer asked how he can setup our program WatchDirectory
to notify him when a folder is created and no files are present after a few hours.
WatchDirectory is typically used to detect new files or folders so this requires a little scripting to get right.
Setup the Email task
Create a new task based upon the Email Plugin.
Use something like "Folder %WD_FILE_N% is empty after 2 hours" as the subject and "%WD_FILE% is empty" somewhere inside the email body.
%WD_FILE% is replaced with the full path (C:\Some\Folder) of the new directory, WD_FILE_N by the directory name without its path (just "Folder"). See Variables for all variables you can use.
For the Monitoring Method select File Age, let it trigger for files (it also does directories) older than 120 minutes. Make sure to check the option "Remember triggered files" unless you want to receive multiple alerts as the folder gets older and older.
On Events only select "DIRNEW" - to detect folders, we are not interested in files.
The Script that actually checks for empty folders
WatchDirectory can not do everything for everyone just by installing but it has amazing ways how you can customize its functionality with little scripts. In this case the customer wants to receive a notification when a folder is empty after X hours, something not directly supported ("build in") by WatchDirectory.
On Filter Events you can add several standard filters
to prevent triggering the WatchDirectory task (for example, the file or directory must match "Customer_*.txt"), for this case we need a filter script (a .bat file).
Here is the script to use in this case:
rem filter script that checks if a detected "new" directory is empty rem "new" in quotes because WatchDirectory triggers using the File Age rem monitoring method for directories that are 2 hours old. rem When the directory is empty, the task should trigger an email. rem If the directory contains one or more files, no email should be sent. rem %WD_...% variables are explained here: rem http://www.watchdirectory.net/wdhelp/plugins/wdopAutoRunBatEnv.html rem File Age Monitoring: rem http://www.watchdirectory.net/wdhelp/help/wdnewconfigpage3.html rem Filter Scripts: rem http://www.watchdirectory.net/wdhelp/help/filter_events.html IF "%WD_REASON%" NEQ "DIRNEW" GoTo :NoTrigger SET NUMFILE=0 FOR %%c IN ("%WD_FILE%\*.*") DO Call :FoundFile IF %NUMFILE% EQU 0 GOTO :Trigger GOTO :NoTrigger :FoundFile SET /A NUMFILE=NUMFILE + 1 GOTO :EOF :Trigger ECHO Y > "%WD_FILTERRESULT%" GOTO :EOF :NoTrigger ECHO N > "%WD_FILTERRESULT%" GOTO :EOF