Monitoring a folder for new files in .net can easily be watched using the FileSystemWatcher in System.IO. You give it a path (ie: C:\toprint) and it will raise an event when a file is created (you can also watch for deleted, renamed and updated files).
Edit: I have new / full code here on GitHub.
I’ve had the need on several occasions to print new files as they are created, so the combination of the FileSystemWatcher and using a process to call the file and print work well together. Below the code to print to the default printer (works great for .pdf files):
c#:
Process PrintProcess = new Process(); PrintProcess.StartInfo.CreateNoWindow = false; PrintProcess.StartInfo.Verb = "print"; PrintProcess.StartInfo.FileName = e.FullPath; PrintProcess.Start();
vb:
Dim PrintProcess As New Process PrintProcess.StartInfo.CreateNoWindow = False PrintProcess.StartInfo.Verb = "print" PrintProcess.StartInfo.FileName = e.FullPath PrintProcess.Start()
The file watcher uses this syntax:
c#:
FileSystemWatcher fsWatcher = new FileSystemWatcher(txtDirToWatch.Text);
fsWatcher.Created += OnChanged;
var withFSW = fsWatcher; withFSW.EnableRaisingEvents = true; withFSW.IncludeSubdirectories = false; withFSW.WaitForChanged(WatcherChangeTypes.Created); withFSW.Filter = "*.pdf";
vb:
Dim fsWatcher As New FileSystemWatcher(txtDirToWatch.Text) AddHandler fsWatcher.Created, AddressOf OnChanged
With fsWatcher .EnableRaisingEvents = True .IncludeSubdirectories = False .WaitForChanged(WatcherChangeTypes.Created) .Filter = "*.pdf"
End With
And the OnChanged Event: c#:
public void OnChanged(object source, FileSystemEventArgs e) { //Do something with e.FullPath, etc. }
vb:
 Public Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs) 'Do something with e.FullPath, etc. End Sub
*I haven’t used this method to print many different formats or tons of files at once, but give it a try!
If you’d like a fully working solution (vb or c#) drop me a line at chris.bitting(at)gmail(dot)com and I’d be glad to send my project and code.