static void Main(string[] args) { if (args.Count() > 0) { string directoryToWatch = args[0]; bool includeSubDirectories = false; int eventResolutionMilliseconds = 10000; if (args.Count() > 1) { includeSubDirectories = (args[1].ToLower() == "/s" ? true : false); } if (args.Count() > 2) { try { eventResolutionMilliseconds = System.Convert.ToInt32(args[2]); } catch (Exception) { } Console.WriteLine("Event Resolution is {0} milliseconds", eventResolutionMilliseconds); } try { using (FileSystemObjectWatcher fileSystemObjectWatcher = new FileSystemObjectWatcher( directoryToWatch, includeSubDirectories, ProcessFileSystemEvent, eventResolutionMilliseconds)) { // Wait for the user to quit the program fileSystemObjectWatcher.BeginProcessing(); Console.WriteLine("Press \'q\' to quit File Watching"); int response = 0; do { response = Console.Read(); } while (response != 'q'); } } catch (Exception eek) { Console.WriteLine("Exception: \"{0}\"", eek.ToString()); } } }