Please let other users know how useful this tip is by rating it below. Do you have a tip or code of your own you'd like to share? Submit it here.
.NET provides a hierarchical set of classes, developed preferably using C#, that provides all the services and APIs necessary for application development. API's for I/O, file system, data access, Remoting, etc., are a part of the Base Class Framework.
System.IO namespace is one of the class libraries in the base class framework that provides IO operation. This library also offers other services apart from basic IO operation. FileSystemWatcher is one of the members of IO library that gives us the access to system functionalities we could never have imagined, such as the FileWatcher utility. In this tip, I am going to demonstrate the FileWatcher utility, which will monitor a folder for creation of new files and raise an event if a new file is made. To get this sort of functionality in VB6 was a major pain as we had to place hooks and stuff. In .NET, it's become much simpler.
This sample code places a FileWatcher to monitor "C:" for creation of a new file. As soon as a new file is created, an event is raised in our application.
Imports System Imports System.IO Class Fw Shared Sub main() Dim fw As New FileSystemWatcher() fw.Path = "c:" ' Path to monitor fw.IncludeSubdirectories = True fw.Filter = "*.*" 'additional filtering 'Add the event handler for creation of new files only AddHandler fw.Created, New FileSystemEventHandler(AddressOf OnFileEvent) fw.EnableRaisingEvents = True 'Dont Exit console.readline() End Sub 'Event that will be raised when a new file is created Shared Sub OnFileEvent(ByVal source As Object , ByVal e As FileSystemEventArgs) console.writeline("New File Created in C: ") End Sub End Class
Compile the file as Vbc fw.vb /r:system.io.dll /r:system.dll. Run the fw.exe and create a new file in "C:". You will notice a message on the console, "New file Created in "C:".
This was first published in July 2003