Search This Blog

Sunday 20 December 2009

Parlez-Vous Français? - ¿Habla usted español?

I must admit, my French and Spanish is really bad.... That is why we hired Jacob (French) and Hans (Spanish) to do the French and Spanish translations of our programs. More important: French and Spanish Support!

Currently, WatchFTP is already available in Spanish. Jacob is busy with a French translation of WatchFTP, it should be ready early 2010.

Our new File Viking program will be translated to French and Spanish as well, "really soon now". When we release v1.0 (or really soon after)

For WatchDirectory, we will start French and Spanish "slowly". A first release will have Spanish and French helpfiles and support, a later release will also have a translated User Interface.

Contact Us

We also have a new website, very much under construction at the moment. Our "Contact Us" and "Buy Now" pages will be moving to this site soon.

All our email addresses will also move to, our old email addresses will redirect to the new domain so you should not have a problem with this change.

Friday 11 December 2009

WatchDirectory on Windows Terminal Server

German language support recently did some "debugging" of WatchDirectory tasks on Terminal Server. Tasks set to run as a Windows Service didn't run properly...

He wrote a German language blogpost describing how WatchDirectory works with Windows Terminal Server. Basically, you need to make sure Terminal Server is in "Install Mode" (change user /install) when you install WatchDirectory. You already knew this, of course, it is the same for all programs you install on Terminal Server.

However, WatchDirectory and WatchFTP can also create Windows Services.... When you create (or change) a WatchDirectory/WatchFTP task so it will now run as a Windows Service (or change it from Service back to "normal") you must make sure Windows Terminal Server is running in "Install Mode", also don't forget to change back to "user mode" (change user /execute) when you're done.

More info from Microsoft is available here: Starting the installation on Terminal Server.

Saturday 5 December 2009

Just For Dummies.... (Guess that's me)

You know the book series XXX for Dummies?? (Networks for Dummies, Windows for Dummies...) I always thought it sounded quite stupid, but the books are a huge success. You know what? These books are not about Stupid, they are about Easy.

Easy does it

No, we didn't create File Viking for Dummies, but we did do something quite interesting: Programming made easy for everyone. And I feel like a dummy why I didn't think about it before... Thank you, Charles, for suggesting this. We really need your input. Charles showed us we are the dummies ;-)


We added "Pipes" to the next File Viking beta (yes, I know, that term is far to technical). The simple idea is the output of one Action is the input of a follow-up action.

For example, the ZIP files action has a zip file as output. You can configure the Email files action as a follow-up, it doesn't email the files you drop on the File Viking basket but the output of "Zip" instead - The zip file is emailed.

I have been testing this pre- pre- pre- beta-3 a few days now and can only say: this is a huge improvement over previous versions.... Charles, we owe you, thanks again!

Wow! Next Beta, Next Week! Join us!

PS, more Programming for Dummies

Yes, we will make this "programming" even better in future "1.x" releases. For example filtering comes to mind (only do this branch of the tree of actions for *.txt files)

Thursday 12 November 2009

File Viking - beta 2

The beta for our new File Viking (Drag & Drop File Processor) started last week. The first bugs were found and quickly fixed.

For those who tried beta 1..... Did you find "Settings -> Options -> Move Baskets shortcut"?
For example, use CTRL+SHIFT+/ to "move them". See vikings dancing on your screen - press the shortcut to move those baskets out of the way (quickly press again and again to have some fun!)

New Beta Version

The new beta release adds ZIP support... Drag & drop files on an icon floating above your desktop and they are zipped to
Missing directories are automatically created. Yes, {yyyy} is replaced by 2009.

New: 64 Bit downloads are available.
New: When a basket is processing the files you've dropped on it, it will show you a progress indicator.
Fixed: Crash when repeatedly closing an empty "configure basket" window (Thank you for reporting, Dees).
Fixed: Tooltips on Windows XP (and probably other compatibility issues on XP and Win2000).

Do you want to help Beta Testing

Send me an email (support at fileviking dot com).


Below are some mockups Nataly made for File Viking (click for a larger version). I wish I could link to her website, but I don't think she has one yet. Anyway, don't you agree even the mockups look great? Do we really need 64mln "True Color" pictures? Personally, I like this charcoal style. But sure, full color images will be added.

These are exciting days! Expect File Viking early 2010, we will add a lot more features for you before we release!!

Friday 23 October 2009

Some Quick Notes....

Are you already getting bored by messages from software-vendors telling you their programs are "7" compatible? I won't bore you with the details, but rest assured, our programs are compatible with all current Windows Operating Systems.

In other news...

We now also have a German Language Blog.

Progress on our new File Viking program is great. We hope to have the first beta ready next week. On the website are a few (clumsy) demo video's and helpfiles available for you to look at.

Thursday 8 October 2009

New WatchDirectory Beta

We just uploaded a new beta for WatchDirectory with the following new features and fixes:

  • Fixed: The Auto FTP plugin would try to "CWD" to the file on the FTP server. This was harmless on most FTP servers, but some servers would abort the upload.
  • New: All plugins that support Dynamic Naming have a new variable for milliseconds: {msec}.
  • New: The Run Any Program plugin can now be used as a SubTask in the SubTask plugin.
  • New: Various plugins that support the File Security settings now also allow you to select "do not change file permissions".

You can find the download on our beta forum.

Sunday 4 October 2009

WatchFTP 2.2 beta 3


We have a new WatchFTP beta on available on our support forum. This new beta supports 4 new Proxy methods and has the ability to rename files it has downloaded.

We expect to release this new version relatively soon, maybe 1 or 2 weeks from now.


Saturday 3 October 2009

Why I Love Microsoft

It has become a common issue to give "bad press" on everything Microsoft related, so I thought I should write about my recent experience.

Recently, one of our computers refused to install Vista Service pack 2. I called Microsoft (Yes, I had to wait a long time on the phone, yes, the "telephone menu" was annoying, yes, the music while waiting was not my taste).

First I got contact with, what I believe, was their first line support (the guy that asks you to try to reboot your computer to see if that helps). WOW! This was a good experience: I spoke to a Dutch guy (my own language), he immediately understood this issue was not "reboot-to-see-if-it-helps".

He connected me to their 2nd line support and I talked with Roy for about an hour. He was polite, very patient, and extremely helpful. The funny thing is: the issue with this computer is not resolved yet (I probably need to reinstall), but I still feel Roy helped me a lot!

Oh, I am totally off-topic on this post already, so... If you are a Developer, check out these links, The History of Visual Studio:
part 1
part 2

A really interesting story about VS, how it all started (yes, Visual Basic 1.0).

Sunday 13 September 2009

File Viking - Status

I mentioned this new program in an earlier post. As always, progress is slower than originally planned - this says more about our planning- than our programming-capabilities, by the way ;-)

Beta Testers

We can still use some beta testers for this new program. Beta testers receive a free copy when it is released, obviously. Interested? We expect to have the first beta available somewhere next month.

If you want to help, send an email to, use the subject "SKUNKWORKS - Beta".

Sunday 6 September 2009

The Truth About Amsterdam

The capitol of The Netherlands, Amsterdam, received some bad press by TV host Bill O’Reilly from Fox News. Two inhabitants of Amsterdam created a website called The Truth About Amsterdam where they defend Amsterdam. Below are 2 video's with their answer to Bill. More videos are available on their website.

The truth about Amsterdam, our response to Bill

Amsterdam versus O’Reilly 2

Tuesday 1 September 2009

WatchFTP 2.2 beta 2

We have a new beta for WatchFTP: 2.2 beta 2.

New in this beta:

  • Previously, files bigger than 4GB would not download properly.
  • French language support (helpfile is not translated yet).
    We are very interested to here about the quality of this translation. Any remarks you have, please send an email to
  • Separate installers for each supported language.
    Previously, the user interface language was detected by the operating system. There was no way to use the English interface on a German language operating system. This new version will bypass the automatic detection and always use the language depending on the download you have installed.

Download links can be found in this forum post.

Friday 7 August 2009

Many tasks, little time

The last WatchDirectory update introduced several features that help people who run a lot of WatchDirectory tasks. This post describes them in more detail and introduces a little undocumented feature.

Find Tasks

Version 4.5.9 has a new option to Find Tasks. Use the menu "View -> Find" or the keyboard shortcut CTRL+F to invoke it. Enter any search term and the WD Control Center will search all visible columns for the entered text. All tasks that have a matching text will be selected and optionally scrolled to top.

There is also an option to "Clear previous results". If you deselect it you can do multiple "finds" to select all the tasks you want.

When all desired tasks are selected you can Start them all at once by clicking the "Play" button. If one of the tasks selected is already running you will find the play-button is disabled (grayed). To enable the play-button you must either:

  • De-select the running tasks:
    Ctrl+Click the selected running task to de-select it
  • Force the Play-button to become active:
    Hold down CTRL and SHIFT while you click play. Only the not-running selected tasks will be started.

Group Tasks by Color

Also new: you can assign one of 6 colors to a task. Select one or more tasks and right-click them. Select the menu-option "Set Color" and assign a color to the selected task(s). After doing this for the first time, 2 things will happen:

  • A new column will show
    This column contains a colored "dot" for the tasks. Clicking the column header will sort all tasks by their assigned color.
  • A new color toolbar will show
    This toolbar allows you to quickly select all tasks having the same color. You can disable this new toolbar using the "View ->Toolbars" menu option.

So now you can, for example, assign "green" to all tasks related to "Incoming Customer Orders" and assign "red" to all tasks related to "Fulfilled Orders".

Click the red dot on the new toolbar to select all "Fulfilled Orders" tasks and start or stop them all at once.

Undocumented - named colors

Maybe "red" is not so obvious... You may be wondering, was it green or red I used for "Fulfilled Orders"?? When you hover your mouse over the colors toolbar, the Control Center will read the description to show from the Windows Registry. If not found there, it will use the default (non descriptive) text for this color to show.

If you want easier, intuitive descriptions for these colors, download this file: ColorDescriptions.txt. (you must right-click, "save as" this link, otherwise it may show as rubbish in your browser). Save it to your desktop and open it with notepad (or another plain-text editor). Inside the file you find several lines like:

"1"="Statusbar message for Red\\npopup for red"

(followed by "2"=, "3"=..."6"=, one for each color). Change the text anyway you like, but please make sure it keeps this same format (especially the "\\n" part is important). For example, change this line to

"1"="Select all Fulfilled Orders\\nFulfilled Orders"

The text before "\\n" is showed on the statusbar. The text after "\\n" is shown as a little yellow notification when you hover your mouse over this color.

After you made the desired changes to ColorDescriptions.txt, rename it to ColorDescriptions.reg (ignore warnings from Windows). Now double-click the ColorDescriptions.reg file to import these settings into the Windows Registry. When you restart the WatchDirectory Control Center, you will see your new descriptions.

Just a reminder

If you have bought a version 4.x license from us, you can upgrade this license free of charge. Just install the latest "evaluation version" on top of your current install so it will see your current settings, tasks and license info.

Download here or for the German lanuage version: here.

Saturday 1 August 2009

Q&A - Load Balancing Humans


One of our customers, USA Transcription Services, uses WatchDirectory to automatically send work from clients to transcriptionists. Clients upload work to a directory monitored by WatchDirectory and WatchDirectory sends it to the transcriptionist assigned to the client.

Normally each client has a dedicated transcriptionist, but some clients send a lot of work to transcribe - more work than one employee can handle in a reasonable time. What is needed is to assign 2 transcriptionists to such a client, making sure no work is duplicated (done by both).

Lori, my contact at USA Transcription Services, asked if I knew a way to solve this.

Solution Outline

Instead of sending work directly from the directory where clients upload work, we first need to distribute these files into separate directories, assigned to different transciptionists. These directories can then be monitored by another WatchDirectory task to send the work to the individual employees.

Solution 1 - Sort Files

Use the Sort Files plugin to distribute the detected files to employee folders. Create multiple "sort rules", making sure they are all "final" (so a file is only copied to one employee folder).

This solution depends on the names of the files uploaded by the customers. If you can be sure these names are quite random, you can base the sort rules on, for example, the first letter of the filename. The first sort-rule would use a mask like


so it copies all files with names starting with a, b, c, d, e, f, g and h (ignoring case), and the second rule would just use * as the mask - matching all files not handled by the first rule.

One problem: the masks as entered for sort-rule one will also match the file C:\Directory\ZZZZZZZZ.TXT because of the mask "*\d*".
So, in this case, it is better to enter the file masks as *directory\d* (or just *ory\d*).

Another problem, it can be quite hard to guarantee all files uploaded by clients have random names. Maybe better to use masks based on the second character of those names:


This post is not intended to go into the linguistic analysis of filenames but I think the letter 'E' is quite common as the second letter in English filenames

Solution 2 - A Batch File that distributes randomly

This is the solution Lori is using now. If you don't need rocket science precision (exactly half of the files go to directory-1, the other half goes to directory-2), this will work fine. Especially if you are dealing with a large number of files to distribute.
This solution uses the Run a Batch File task to start a script that uses the environment variable %RANDOM% to determine the target directory (and thus the employee that transcribes the file).
Here is the script:

SET TARGET1=C:\Uploads\Employee1
SET TARGET2=C:\Uploads\Employee2
rem get a random number (0 - ~32000)
rem and get the remainder of divide by 2, so we have a number 0 or 1 as the result
rem move the detected file to TARGET

If a client needs 3 employees, the script can be changed to (changes highlighted):

SET TARGET1=C:\Uploads\Employee1
SET TARGET2=C:\Uploads\Employee2
SET TARGET3=C:\Uploads\Employee3
rem get a random number (0 - ~32000)
rem and get the remainder of divide by 3, so we have a number 0, 1 or 2 as the result
rem move the detected file to TARGET

Solution 3 - No Randomness

Random can be a tricky concept... I will let Dilbert Explain. To guarantee an even distribution of files you need to count the files, please see this forum post.

PS: I found the Dilbert comic only on It must be somewhere on the official site as well, but I could not find it. If you have a link to the original pic on, please let me know.

August Special - Free Agenda At Once license

If you buy 2 or more WatchDirectory or WatchFTP licenses in August 2009, you can get a free license of this Great Organizer and ToDo-list program. A $40 gift from us to you!

If you are already a customer and buy one extra license (remember to contact us first for a 25% discount), this offer for a free Agenda At Once license is also valid.

Simply forward your order-confirmation email to, please allow a few days to process your request.

About Agenda At Once

Agenda At Once PIM for Windows combines the best aspects of other personal organizer applications. It's a complete PIM system, integrating to-do management, scheduling and planning, contact and note functions. In addition, it is easy to use and responsive, while being feature-packed but not power-hungry. With its optimally-designed interface, Agenda At Once will rapidly put you in charge of your - or your team's - personal information. You'll be saving time and accomplishing so much more that you'll be wondering how you ever managed without it.

Tuesday 28 July 2009

8 processors but still waiting

Our new build system has lots of ram and a multicore hyperthreaded cpu: 4*2 processors. It is just unbelievable how responsive this Vista-64 machine is.

We are currently making some changes to the build process of WatchFTP, creating separate installers for each supported language. Previously, we created just one installer with a multilingual executable (thank you Sisulizer for a great localization product). The multilingual approach worked fine most of the time, however when a German customer living in France wants to run the English version of WatchFTP on his Spanish-language operating system it was just not possible. The operating system would select the language to display, not much you could do about it.

Future WatchFTP versions will have the desired display language build-in. Sisulizer will create language specific (German, Spanish etc) copies of the original (English) executables. The display language will only depend on the installer you download from our websites.

Steps in our build process

  1. Build a "release" version of WatchFTP
    (Microsoft Visual Studio 2008 - C++ by the way)
  2. Run Sisulizer to create the multilingual executables
  3. Protect the core components (2 executables)
  4. Code-sign the EXE and DLLs
  5. Run Inno Setup to create the installer
  6. Code-sign the setup file
  7. Test the setup
    When we find issues, fix them and go back to step 1.
  8. When all is OK, a lot of other tasks like uploading to our website etc

The most time consuming step (several minutes) was step 3 (software protection). Not really a big deal, we don't release new versions that often. However, step 7 (test setup) can cause a lot of rebuilds (start at step 1) and the delays for software protection become very annoying.

It gets Worse!!

When we implement separate installers for the different languages we support, we will have to do step 3 (protect) for each language (currently German, Spanish and English. Soon we will have a French version as well).
This will make our already long build process 4 times longer - totally unacceptable.

Our great new computer doesn't help at all because all those steps need to be sequential. We can not code-sign (step 4) before the protection (step 3) is completed. Also, the protection phase is done with a single-threaded program, even if the computer has 1000 cpus, it will only use one of them.

How we solved it

Obviously, the protection step (nr 4) needs to be paralleled. We can launch the protector as a separate process for each of the languages. A first attempt (WRONG!!) in our build batch script:

ECHO ==STEP 2 Complete==>>C:\Temp\buildlog.txt
ECHO ==STEP 3 Starts - Software Protection==>>C:\Temp\buildlog.txt
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"
ECHO ==STEP 3 Complete==>>C:\Temp\buildlog.txt
ECHO ==STEP 4 Starts - Code Signing protected Executables ==>>C:\Temp\buildlog.txt

(note: the scripts shown in this post are very simplified without error checking etcetera).
The protect.bat file is called and based on the LANGUAGE variable it will protect a specific language version of WatchFTP. The beauty of the Start command is that it will launch a separate console (command prompt) to run the protect.bat script. In the example above 4 language versions are protected simultaneously, each using their own CPU. Obviously, because of disk usage, there is some slowdown - it won't complete 4 times as fast.

A small problem...

In case you didn't realize, the above script is sort of wrong: it continues running while the 4 "Protect.bat" files are not finished yet. So it gladly goes on to Step 4 (code signing), but there isn't anything to code-sign yet. We need to wait for the 4 protect.bat processes to complete before we can continue with Step 4.

And an easy fix

We have a small command prompt program called GdPUtil (Free Download). Please read the description of the -join parameter.

We added the following lines at the end of protect.bat so it signals to the main script it is ready:

"C:\Bin\GdPUtil.exe" -join protect%LANGUAGE% 1000

And changed the original build script to

ECHO ==STEP 2 Complete==>>C:\Temp\buildlog.txt
ECHO ==STEP 3 Starts - Software Protection==>>C:\Temp\buildlog.txt
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"
Start "Protecting %LANGUAGE%" "E:\Build\Protect.bat"

ECHO ==STEP 3 waiting for protection to complete ==>>C:\Temp\buildlog.txt

"C:\Bin\GdPUtil.exe" -join protectENGLISH 1000
"C:\Bin\GdPUtil.exe" -join protectSPANISH 1000
"C:\Bin\GdPUtil.exe" -join protectGERMAN 1000
"C:\Bin\GdPUtil.exe" -join protectFRENCH 1000

ECHO ==STEP 3 Complete==>>C:\Temp\buildlog.txt
ECHO ==STEP 4 Starts - Code Signing protected Executables ==>>C:\Temp\buildlog.txt

Now our script works like a champ! Even though it has to do 4 times as much work, it is only slightly slower than it used to be.

Why does this matter to you?

If you have long running scripts, have a good look if they can be broken up like we did in our build script. For example, are you uploading a file to multiple FTP servers in your script? If you have enough upload bandwidth but it is the FTP servers causing the slowdown, this technique can be very helpful.

Sunday 19 July 2009

SkunkWorks - New Program, New Name, Contest, Testers.....


We are currently working on a new program. Functionality is going great so far but we have a strange problem ;-) More on that further down below...

The Program

So far our programs WatchDirectory and WatchFTP concentrated on doing things automagically. This new program is different.
It allows you to select files (in Windows Explorer, for example), add these files to a "basket" (an icon floating above explorer) and then perform "actions" on those baskets. A few actions we are currently implementing:

  • COPY - copy the files dropped into the basked to a pre-configured directory.
  • MOVE - same as copy, but move the files instead.
  • EMAIL - email the files to a pre-configured email address.
  • FTP - upload the files to an FTP server.
  • BATCH (you already knew this was coming, I guess ;-) - Run a script for each of those files - program your own action.
  • YourIdea - we are always interested to hear from you.

The Name

So... if you read the above... any idea for a good name? There are a few important features the name must have:

  • English - our biggest market.
  • Web - the name must be available.
  • Attractive/Mysterious - if the name wows people who see it, making them curious, that would be great!
  • Not offensive - need I explain this?
  • File - it would be great if it has the word "file" in its name.
  • Short - not as important as the above, but shorter names are easier to type (url in webbrowsers).

We already thought of several names (all very boring), do you know a good name? A good program name can make the difference between success or failure for a new program, so if you suggest the "winning name" to us we will compensate you for it. Beside a free copy of the program and our everlasting gratitude - a $1000 reward or 50% of the first month sales of this program - you choose!

Send an email to, use the subject "SKUNKWORKS - Name". Tell us the program name and why you think it is a great name to use.

Beta Testers

It may take a month, maybe 2 months before we have the first beta ready, but we need beta testers for this new program. Beta testers receive a free copy when it is released, obviously. Interested?

Send an email to, use the subject "SKUNKWORKS - Beta".

Update - July 22, 2009

We just bought the domain (thank you Peter Wester) - any Vikings reading this ;-)
If you have a better idea, the contest is still open, probably until the end of the month.

Update - July 25, 2009

We just bought the domain (thank you Al Harberg). He didn't actually suggest this name but warned me about negative feelings the name Valhalla/Walhalla might cause.

Am I sure about FileViking? I think some ancestors of mine were slaughtered by Vikings... It has been some time ago, though...

Thursday 16 July 2009

Tweet your files with curl

This post shows how you can let WatchDirectory or WatchFTP post a new twitter message when they detect new files. Excuse me if I get some of the twitter terminology wrong - I grew up when computers were something you see in movies ;-)


This page shows that posting a message to twitter is as simple as

curl -u username:password -d status="your message here"

So, we need Curl to post. I used the non-ssl version while testing. Make sure to download a Windows version from their download page.

Batch File

If you want to "tweet" when a new file is detected, create a new task and select the Run a Batch Script task (for WatchDirectory) or Run a Batch Script Action (for WatchFTP).

Let it run the following batch file (may not show correctly in all blog-readers):

@echo off
SET CURL=E:\bin\curl-7.19.5\curl.exe
SET TWUSER=TheTwitterUser
SET TWPASS=TheTwitterPassword

rem if we are called by WatchFTP, copy its variables to WD variables
rem so this script is compatible with both programs



SET MSG="New file: %WD_FILE%"
GOTO :SendIt
SET MSG="Deleted file: %WD_FILE%"
GOTO :SendIt
SET MSG="Changed file: %WD_FILE%"
GOTO :SendIt
SET MSG="Renamed file: %WD_OFILE% to %WD_FILE%"
GOTO :SendIt
SET MSG="New directory: %WD_FILE%"
GOTO :SendIt
SET MSG="Deleted directory: %WD_FILE%"
GOTO :SendIt
SET MSG="Renamed directory: %WD_OFILE% to %WD_FILE%"
GOTO :SendIt

"%CURL%" -u %TWUSER%:%TWPASS% -d status=%MSG%

Make sure to properly change the first few lines (where did you install curl, what is your twitter userid and password).

Twitter Limits

A tweet is a short message (I believe limited to about 140 characters). If your directory and filenames are long, you may need to shorten the messages a bit. For example, change %WD_FILE% to %WD_FILE_N% everywhere in the script so it will only tweet the filename (without the directory path).

Twitter also has some other limits you may hit if you call it too often.

Blogging your Files?

This post shows you how.

WatchFTP 2.2 beta

A beta version for WF 2.2 is available on our forum.

New in this beta release is that you can enter all kind of "timing" related settings for each task. Among other things, this gives you easier access to all the "secret settings" described in this blogpost.

This beta does not have the new features translated to German and Spanish yet - the new items will show in English.

To install (and keep your current settings and tasks):
* Do NOT uninstall your current WF version
* Install the beta and use all proposed settings of the installer (same directories)

WatchDirectory 4.5.9 released

We just released a new WatchDirectory version - another free upgrade for all WatchDirectory version 4 customers.

Changes in this release

  • Fixed: The tip window sometimes caused the WD Control Center to crash at startup
  • New: The Auto Copy plugin can now MOVE files. When you move files on the same disk, this is faster than copy followed by delete.
  • New: The Folder Size plugin writes a timestamp and filename of deleted/moved files to <Task Directory>\<Task Name>\removedfiles_YYYYMMDD.csv. These files are automatically removed when they are a month old.
  • New: The Folder Size plugin can check for several new "events"
  • Fixed: The "Last Message" column of the WatchDirectory Control Center was not always updating properly
  • Fixed: The Auto UNZIP task now supports far larger files (tested with a 2GB zip containing an 8GB file)
  • Fixed: The Auto ZIP task now supports far larger files (tested up to 8GB)
  • Fixed: The Auto Copy option to remove directories when they become empty in some cases also removed the monitored directory.
  • New: The thumbnail plugin can now be used as a SubTask in the SubTask plugin
  • New: The thumbnail plugin has a new option to prevent overwriting existing thumbnails
  • New: You can set the "color" of a task. If you have a lot of tasks, this allows you to organize them in different "groups". Give a task one of 6 colors using the "right click" context menu. You can sort the tasks by color by clicking the header in the WD Control Center. You can select all tasks having the same color using the new "Colors Toolbar".
  • New: When you let the email plugin combine emails, you can now set the separator between emails yourself.
  • New: Use CTRL+F (or View -> Find) to find and select tasks.
  • Fix: The Automatically Start any Program plugin did not properly set the environment variable WD_REASON when a new directory was detected.

How to install

Stop all your WD tasks, stop the WD Control Center. Now install the new version in the same location as your previous installed version (overwrite it).
This will keep all your settings and tasks intact.


Download Here (English) or Here (German).

Wednesday 1 July 2009

July Special - Free ShowSize license

When you buy 2 licenses of WatchDirectory or 2 licenses of WatchFTP during July 2009, you can get a free license of ShowSize, normally sold at $49.95.

To get your free copy of ShowSize, forward your WatchDirectory or WatchFTP order confirmation to Please allow a few days to process your request.

About ShowSize

You already know that Windows Explorer does not show folder sizes in its list. ShowSize can do that and much more. See how your disk space is distributed in various folders and file types, and so on. ShowSize is the next generation software that can process terabytes of disk space and millions of files. Using ShowSize, you can also list or print folder contents in ways not possible with Windows Explorer.

Tuesday 16 June 2009 - One of our Customers is a company which sells personalized Gifts via the Internet. The personalized gifts mostly exist of a product, personalized with an image. For every order we create an order form in PDF format.

For our new website, released somewhere in 2008, we were looking for a program to automatically download the images and PDF’s and print these PDF’s on demand. From my previous internship I already knew WatchDirectory, PDF print on demand. Browsing the website of WatchDirectory I’ve noticed that they also had the program WatchFTP. So one company which solved our problems!

These images, created by the users, are automatically downloaded with WatchFTP to our local server where the gifts are created, handled and shipped. The order form PDF’s are also downloaded and printed on demand with WatchDirectory. We had some questions about tuning/configuring the products and within no time we had a reply with the solution.

In short, two top products which fit to our needs exactly.

   Niels van der Linde

Tuesday 9 June 2009


YES! Today in Holland we celebrate "Vlaggetjesdag" (day of the flags?). It is traditionally the day the first salted herrings of the new season are sold. Most Dutch eat the Herring with raw onions, these onions were originally added to camouflage the smell of rotting fish. These days they are not really needed anymore, and Holland is divided in 2 camps about adding onions (I like my herring with onions, thank you).

The herring is sold as "Hollandse Nieuwe" (Dutch New) when it is at least 16% fat (yummie!) and prepared in the traditional way (salted and "gekaakt"). The first barrel with herring is always sold at ridiculous prices (€66,000 this year), the money goes to charity.

I lived in Denmark for a year and sadly enough, they don't sell Herring prepared the "Dutch way". Luckily, their "Sild i Karry" (Herring with a lot of herbs and Curry sauce) was super as well - actually, besides Carlsberg Porter, it is one of the main reasons for my frequent visits to Denmark.

Friday 5 June 2009

Remotely start/stop WatchDirectory and WatchFTP services

A great free tool from Sysinternals (now owned by Microsoft) is the psexec program. With psexec you can run programs on other computers and it supports full interaction with remote command prompts. This allows you, for example, to start or stop Windows Services by running the "NET START" or "NET STOP" command.

Initial Setup

I always create a new user on the computer I want to access with psexec and name it psexec as well. I give this user administrator privileges so it can do "whatever I want". This step may not be necessary, see the psexec help (just run psexec without parameters).

Control a Service on another machine

Okay, lets assume I want to stop the WatchDirectory task "unzipbiggies" that runs as a Service on computer \\Test01. First, you need to know that when WatchDirectory creates a Windows Service, the Service name is prefixed with "watchDirectory:", so the actual Windows Service name for the task "unzipbiggies" is "watchDirectory:unzipbiggies".
WatchFTP prefixes Service names with the string "WatchFTP:".

First we need to open a command prompt on the remote computer:

C:\Users\gert>e:\bin\psexec.exe \\Test01 -u psexec -p topsecret cmd

This assumes you created a user "psexec" with password "topsecret" on the \\Test01 computer.

After a while this opens a command prompt on the remote computer, but it shows on your computer. Enter the following command to see all running Windows Services (including the WatchDirectory and WatchFTP services):

C:\Users\gert>NET START
These Windows services are started:

... snipped a lot of services....
   Terminal Services
   UPnP Device Host
   User Profile Service
   Windows Audio
   Windows Audio Endpoint Builder
... snipped a lot of services....
The command completed successfully.

To stop the WatchDirectory task, enter

C:\Users\gert>NET STOP "watchDirectory:unzipbiggies"

To start the task again, enter

C:\Users\gert>NET START "watchDirectory:unzipbiggies"

Other uses

There are a lot of other things you can do with psexec. For example when a file is detected by WatchDirectory on "this" computer, let psexec run a command on another computer. You get the idea, I guess.

Sunday 17 May 2009

WatchFTP 2.1.9

Today we released a minor update for WatchFTP. This free update has the following fixes/new features:

  • A few more problems with accented characters were fixed
  • In certain cases files were not removed from the FTP server
  • The "History Viewer" allows you to show the full timestamps of messages

You can download the new version here:

Stop all your tasks and install the new version "on top" of your current install so it will see your settings/tasks.

Friday 15 May 2009

Let us not forget...

Our Brave Soldiers

Our heroes, Captain Kroon and his troops, they serve our country while we are sleeping. Soon (May 29, 2009) Captain Kroon will be awarded for his own and his troops' bravery.

Marco Kroon, the first person in a long time (50 years) in The Netherlands to receive the most honorable honor, our most prestigious medal: the Williams Order.
Marco, and your troops, you understand this is for all of you, so: THANK YOU!

This rare honor is only awarded for the highest bravery. Sometimes (extremely rare!) it is honored to a whole regiment. Even rarer to a foreign regiment, so far this has happened only twice in hundreds of years....

Our Polish Friends: 1st Independent Parachute Brigade
Our American Friends: 82nd Airborne Division

Update - I have just seen the ceremony on TV, very impressive!

(Marco Kroon being decorated by Queen Beatrix)
If you understand Dutch, here is a short interview with our hero, this was just after he heard he will be knighted.
Update - A short clip of the ceremony (~2 minutes). With a simple slap on the shoulder, Marco is knighted - did I tell you I love traditions?

Thursday 14 May 2009

How Many Tasks does WatchDirectory support?

A question that sometimes comes up is
How Many Tasks does WatchDirectory Support?

If this is for making a purchase decision (Do I need WD Standard or Professional), the answer is:
WD Standard supports 3 tasks. WD Professional supports..... mmmmm, well it depends.

Number of Tasks

There is no artificial limit for the number of tasks that WatchDirectory Professional can run. There are, however, other limitations (mostly memory related) that limit the number of tasks.

  • Available Memory
    Each task you run requires some memory. The amount of memory needed depends on several things, most importantly on the Monitoring Method you use.
  • Size of Monitored Directories
    If you use the "Default" or "Polling" Monitoring Method, your task will have a representation of the monitored directory in memory. Large directories require more memory. The "File Age" and "Fast" monitoring methods do not require this representation.
    See also Monitor Huge Directories.
  • Run Mode
    If you run your tasks as a Windows Service, there are some Windows limitations for the number of Services supported. The actual limit depends on your Windows version and on the number of other services you have running. If you reach this limit, you will typically receive error messages like this:
    StartService fails: Error Code:1053
    Description: The service did not respond to the start or control request in a timely fashion.

    The last few posts in this forum topic describes a few work-arounds.
  • The Size of your Brain
    Can you really manage 200 (WatchDirectory) tasks?

Why so Many?

Often it can be easy to replace several tasks by just one, especially if their monitored directory "share" a common parent directory. A few tips....

Replace multiple "Copy Files" by one "Sort Files" task

If you want to copy files to multiple destinations, you don't have to create multiple "copy files" tasks. Instead create just one "Sort Files" task. Each "rule" you create can have another destination.
See also The Sort Files plugin.

Merge multiple "Email Notification" tasks into one

When the email address is the only thing that's different for each task, you may want to look at the "Advanced Addressing" options for the email plugin. This allows you to specify different email addresses depending on the sub-directory where the file is found. An old newsletter also describes this.

Update (WatchDirectory 4.6.2): When you use Advanced Addressing, using the "email.txt" trick, you can also set the Subject and message body depending on the directory where the file is found.

See also The Email Plugin and Advanced Addressing.

Convert tasks into Subtasks

WatchDirectory v4.5.8 introduced a new plugin that can run other tasks as Subtasks. There are a few limitations described further in the help file.
See also The Run Subtasks Plugin.

Friday 17 April 2009

Q&A - Run bwavinfo for detected files


Adam on our Forum asks:


Hi all,

I'll confess I'm no expert on scripting, but I've had a good deal of success in running simple batch files on watched directories, up until now..

I'm trying to run a command 'bwavinfo' via a simple .bat file. For the command to work, it requires an "--info" switch after the bwavinfo command, and before the input/output filenames (i.e. bwavinfo --info in.wav >in.txt). I have a working batch file which will do this outside of watchdirectory using the above script, though when i try and run it via watchdirectory, i'm met with a 'bwavinfo is not reconized as an internal or external command' message.

Here's my WD batch file:

bwavinfo --info "%WD_FILE%" >"N:\%WD_FILE_B%.wav.txt"

bwavinfo relies on Ruby and Java to run, but has been installed correctly, and works fine via a command prompt. Where am I going wrong?!




bwavinfo --info "%WD_FILE%" >"N:\%WD_FILE_B%.wav.txt"

May I suggest to you to always use full path-names in batch scripts. Something like this:

"C:\Program Files\bwa\bwavinfo.exe" --info "%WD_FILE%" >"N:\%WD_FILE_B%.wav.txt"

That way, the bwainfo program can be found no matter how your PATH is setup.

Also, redirecting to "N:\...."... it looks like N: is a mapped network drive? Remember that these drive-mapping will not work if you run this WD task as a service. It is probably a better way to use the UNC name of the drive-mapping, something like

"C:\Program Files\bwa\bwavinfo.exe" --info "%WD_FILE%" >"\\Server\share\%WD_FILE_B%.wav.txt"

Finally, for the Ruby & Java issue, you also need to remember that the environment (among other things the PATH setting) may be different for Windows Services. You could temporarily change the PATH in your batch-script yourself, to work-around this, something like

SET PATH=C:\Program Files\Java\jre1.6.0\bin;%PATH%
SET PATH=C:\Program Files\RoR\Bin;%PATH%
"C:\Program Files\bwa\bwavinfo.exe" --info "%WD_FILE%" >"\\Server\share\%WD_FILE_B%.wav.txt" 

Further reading

All those WD_ variables you can use in your batch files...

Saturday 11 April 2009

Convert TIFF to PDF

A request we often get is a way to convert TIFF files to PDF with WatchDirectory.

While WD does not have a native way to do this, you should be aware that WD's "Automatically Run a Batch File" plugin can do almost anything. If there is a command line tool available, WatchDirectory can "run it".

Anyway, we have found 2 ways to convert TIFF to PDF using command line tools. The batch scripts below should be started by WD's "run a batch file" plugin. It is also a good idea to create a filter so WD will only start the script for TIF and TIFF files.

ImageMagick and Ghostscript

ImageMagick is one of my favorite tools for image manipulation. If a format is not "natively" supported by ImageMagick, it can delegate to other tools. ImageMagick needs Ghostscript for PDF support.

Downloads needed:
ImageMagick, I currently use v6.5.1, available here:
Ghostscript, I currently use v8.6.3, available here:

The ImageMagick/Ghostscript script. Note you don't see any reference to Ghostscript, but it must be installed otherwise the script won't work.

@echo off
rem where is ImageMagick installed???
SET IMADIR=C:\Program Files\ImageMagick-6.5.1-Q16

"%IMADIR%\convert.exe" "%WD_FILE%" "%WD_FILE_D%\%WD_FILE_B%.pdf"

rem if you want to remove the tiff after it has been converted
rem uncomment (remove the "rem") the next line
rem DEL "%WD_FILE%"


Another great tool, I didn't even know it supported command line conversions until Dirk (German language support) told me. You can download Irfanview here.

The Irfanview script:

@echo off
rem where is Irfanview installed???
SET IMADIR=C:\Program Files\irfanview

"%IMADIR%\i_view32.exe" "%WD_FILE%" /convert="%WD_FILE_D%\%WD_FILE_B%.pdf"

rem if you want to remove the tiff after it has been converted
rem uncomment (remove the "rem") the next line
rem DEL "%WD_FILE%"

IrfanView settings

Current releases of IrfanView will prompt you with a little popup window (to preview the PDF). Obviously, you don't want that when you are automating the creation of PDF files.

Just start IrfanView, open a TIFF file and save it as PDF. Next to the "Save As" window, where you enter the pdf filename, is a little window where you should select the "not needed" option. From now on, the script above will not cause those prompts.

Friday 10 April 2009

Q&A - Clear the email queue


Flyinglow on our Forum asks:


I have Watch Directory installed on a Management server. It watches directories on a database server. The database server crashed and had to be rebuilt on a new machine. All the files were copied over via a backup. I went into the Watch Directory jobs and just changed the server name for all the directories it was watching as we recreated the folder structure exactly.

When I started the jobs Watch Directory viewed all the files in the folder as new or changed and started sending out mass emails. I turned off all the jobs to stop it. Now when I turn on the System.Mail job it keeps sending out more messages even though all the other jobs are still turned off.

Is there any way to clear the queue for System.Mail? I already went into all the jobs and turned off the missed events option but I haven't turned any of them back on since I can't start System.Mail without flooding my email server.


When a WatchDirectory task sends email, the email message is only prepared: it is written to a directory monitored by the System.Mail task (the wdPostman program). When System.Mail detects the new message in this directory, it is read and sent.

If, for some reason, you want to clear this email queue, you should remove all files in the following directory:


The directory above is the default location on Windows Vista.
You open the "System.Mail\Out" directory by right-clicking the System.Mail task and select the "Explore ..." menu option. Alternatively, select "Tools -> Explore Task Directory" (this opens C:\ProgramData\watchDirectory) and navigate to the System.Mail\Out sub-folder.

The directory contains files with a wdmail extension. These are the actual email messages waiting to be sent by System.Mail/wdPostman. If you have WatchDirectory tasks that are set to "Combine" email messages, you will also find files with a wdmailcombine extension in this directory. Delete these as well.

Thursday 2 April 2009

Small WatchFTP update


We just released a small update for WatchFTP that fixes an issue for people that use accented characters in file or directory names.

Depending on the actual name, the file did not download. Other filenames with accented characters did download, but if you set the task to remove the FTP file after download, the delete failed.

The new release is available on our English, German and Spanish sites.
Just install this release "on top" of your current install and it will keep your configured tasks and settings.

Tuesday 24 March 2009

USA Transcription Services - A customer of WatchFTP and WatchDirectory

USA Transcription Services

What a pleasant and unexpected surprise in this day and age to get not only a superb product with WatchFTP and WatchDirectory, but unbelievable customer support, as well!

These products have shaved hours off my workday. So much so that I am actively seeking new customers now! Before these great products, I was spending hours doing the mundane tasks of moving files from one place to the other. Not any more! (read more...).

Sunday 22 March 2009

WatchFTP 2.1 Released

We just released WatchFTP v2.1, the download is available here.

Changes in this release

  • New: A new column in the WatchFTP Control Center showing you the number of files downloaded and the number of files waiting to download. These counts are for the last 24 hours.
  • New: The context menu of tasks (right-click the task to see it) now shows the downloaded filenames. When you click a filename, it will start Windows Explorer with that file pre-selected.
  • Fixed: Better detection of corrupt downloads - the downloaded file will be deleted and redownloaded.

Install this new release "on top" of your current release so it will keep your tasks and settings.

Monday 16 March 2009

New WatchFTP beta

There is a new beta available for WatchFTP 2.1.

This new version fixes an issue where unreliable internet connections could cause corrupt downloads.

There are also a few new features in this release:

The main window has a new column showing the number of files downloaded and the number of files waiting to be downloaded during the last 24 hours.
The "right-click" context menu of tasks shows the downloaded files. Clicking a file starts Windows Explorer with that file pre-selected. After you have selected a file from this menu, it will appear on the menu with a checkmark.

You can find the download on our forum:

Saturday 28 February 2009

New WatchDirectory beta

We just released a new WatchDirectory beta for version 4.5.9.

See this forum post for the download link.

The beta has one bugfix and one new feature.

The plugin to "launch programs" did not set the WD_REASON variable for new folders properly (it was set to DIREW instead of DIRNEW). This has been fixed - thanks for reporting this, Mark.

A new feature in the WD Control Center allows you to Find (and select) tasks. Use CTRL+F (or the View -> Find menu) to find tasks. This can be very helpful if you have a lot of tasks to manage.

Monday 23 February 2009

GMail as your SMTP server

WatchDirectory v4.7

The work-around described in this post will soon be obsolete. The new beta for WatchDirectory v4.7 implements secure SMTP connections, see this blogpost

GMail requires secure connections

If you want to configure WatchDirectory to use GMail as its SMTP server, you will find that currently WatchDirectory does not support secure (TLS/STARTTLS) connections for email. To work around this, you will need to run another program (stunnel) to "wrap" WatchDirectory's connection to GMail. WatchDirectory will then connect to stunnel, which will connect to gmail.

Download / Configure stunnel

Download stunnel-4.xx-installer.exe (I tested with version 4.26) and run the installer. Install stunnel to the directory C:\Stunnel.

Inside the c:\Stunnel directory create a text file called gmailsmtp.txt with the following content (8 lines).

; SMTP configuration for Gmail
output = SMTPgmail.log
taskbar = no
cert = stunnel.pem
client = yes
accept =
connect =

Change to your computer's IP address or name. Do not use "localhost" or as that won't work.

Open a command prompt (cmd.exe) and navigate to the stunnel install directory (CD C:\Stunnel). Enter the following 2 commands to run stunnel as a Windows Service:

stunnel -install gmailsmtp.txt
net start stunnel

Configure WatchDirectory

Now you need to configure WatchDirectory's Email Settings to connect to stunnel.

  • Your SMTP server: enter the same name or IP address you entered in gmailsmpt.txt
  • Port: 8025
  • Authentication: Login
  • Userid: your gmail address (
  • Password: your gmail password

Now press the "Test" button. If you configured everything correctly, a test email will be sent. This test email will also show up inside your gmail account in the "Sent Mail" folder.

Further Reading

Configure GMail
WatchDirectory's SMTP Settings

Saturday 21 February 2009

Last Access Time on Vista

Just a quick note about Windows Vista (and probably Win2008 and Win7).

WatchDirectory's File Age monitoring method can detect "old files" based on their "Last Access Time" (the last time the file is opened). This timestamp is maintained on NTFS volumes when the registry key
is set to zero or does not exist.

Windows versions before Vista defaulted this setting to zero, so the Last Access timestamp was maintained for files on NTFS volumes. To improve file system performance, Microsoft disabled Last Access recording on Vista.

If you want to detect "old files" based on their Last Access time, please make sure this registry setting is set to zero.

More information:

Saturday 14 February 2009

Monitor Huge Directories for Changes

Just a few quick tips if you want to detect new, changed or deleted files in *huge* folders.

The most important setting (performance wise) in WatchDirectory is the Monitoring Method. You can select between several methods, but only the "Fast" method is independent of the size of the monitored directory. The other three methods work by scanning the directory for changes - large directories take more time and memory to process.
The "Fast" monitoring method doesn't need to scan the directory - Windows will inform the task of the exact change that happened.

If you can not use the "Fast" method, make sure to exclude all subfolders you do not want to monitor. Also filter out unneeded files and/or directories.
If you have the choice between "exclude sub-folders" and "filter", the optimum way (performance) is to exclude subfolders. An excluded subfolder is never scanned for changes. The filter events settings are applied at a much later stage - after the directories are scanned.

Even if you do use the "Fast" monitoring method, in some cases WatchDirectory will actually "scan" the directory. This happens when you

  • Select Fire FILENEW/DIRNEW events for all files at startup or When starting up, check for missed events on the Other Settings window.
  • Select Trigger for all files and subdirectories below the renamed directory on the Events to detect window.

I hope this post helps you understand the effect of the options you select in WatchDirectory.

Friday 30 January 2009

WatchDirectory 4.5.8

New Release: WD 4.5.8

A few days ago we released WatchDirectory v4.5.8. This is a free upgrade for all version 4 customers. Just install this version "on top" of your current install so it will keep your tasks and settings.

What's New   Download

Sunday 25 January 2009

File Age Monitoring Method

WatchDirectory Professional can detect files and directories based on their age (how old they are). This allows you, for example, to delete files older than 7 days using the Delete Files plugin. Or to send an email for those old files to help you remember to "process them".

An innocent option

When you configure WD to use the "File Age Monitoring Method", one of the options you can select is Remember triggered files. If your task sends an email for "old files", you will want to select this option as it will prevent multiple email messages for the same file.

However, if you configure a task that will delete, move or rename the old file (the original "old" file does not exist anymore), make sure you do not select this option. The "remember triggered files" option stores info (filename, timestamp) into the history database for this task and this is totally unnecessary if the detected file is gone. While the history database will "auto cleanup", this file age info can use a lot of diskspace (for large directories) and cause your task to run slower than needed.

Friday 23 January 2009

Customer testimonial - CAMP Systems

Christopher Utter (CAMP Systems) made my day:

WatchDirectory Pro is by far the best money I have ever spent on a utility.

Your support is awesome, you patch bugs and offer new features free of charge all the time. Your product just out-performs many other products I have tested with a much higher pricetag. So Thank you for your efforts. I have been able to automate dozens of tasks using the pro version of watch directory and it has saved me many man hours in scripting other solutions.

Please keep producing software solutions as you are quickly becoming my favorite software vendor.

Thanks for the nice words Chris.

Wednesday 21 January 2009

Backup your settings

Backup your WatchDirectory Tasks

So you have setup your tasks in WatchDirectory and they work exactly the way you want. Perhaps now is a good time to backup your tasks because somewhere in the future, Your Computer Will Fail!

The easiest way to create a backup is to stop all tasks (including the System.Mail task if it is running) and select the menu-option
"File -> Backup..."
This creates a ZIP archive with all files found in your "Task Directory". The "Task Directory" is where most of your settings are stored, you can explore your Task Directory using the menu option "Tools -> Explore Task Directory".
Alternatively, you can use your favorite backup program to backup your task directory.

Above, I say "most of your settings". The things that are not stored there (and thus, are not included in the backup) are:

  • Your batch files and other (vb) scripts that you may be using with WatchDirectory's Run a Batch File tasks
  • Your How to Run settings
    Especially your Windows Service settings. If you manually changed them, for example to run as a different user, you should write these settings down somewhere. See Further Reading below for more information.

Further Reading

Here are a few earlier related blogposts that touch this same subject:
Move WatchDirectory to another computer
Move your Task Directory

Thursday 8 January 2009

WatchFTP customer - Idonix

Idonix, a custom software development company specialising in show control systems, was engaged by a major UK broadcaster to provide data integration and graphics automation systems for their 2008 US Presidential Election coverage.

One of the requirements was to download and process substantial quantities of election result data from an Associated Press ftp server. Rather than write our own ftp synchronisation software, we found an existing product that fitted our needs exactly - WatchFTP. It was extremely straightforward to configure WatchFTP to download files as they were updated by the Associated Press systems, and not only that - we were able to use the Run a batch script action to bulk load each updated file into our SQL Server database.

However when we arrived at the customer's site we had an unforeseen problem... (read more...)