Watching Folder Activity in VB.NET

Getting Started

Open Visual Studio .NET and create a new Windows Application Project. Call it WatchFolder and click OK:

Create a user interface as shown in the image below:

Add the following controls to our form:

  • txt_watchpath: TextBox (for folder path)
  • btn_startwatch: Button (start watching)
  • btn_stop: Button (stop watching)
  • txt_folderactivity: Textbox (folder activity)

Lets start coding for this application. The first thing we need to do is to import the required classes. Type the following code before your class declaration:

Imports System.IO
Imports System.Diagnostics

This code will import the necessary class required for our application. We also need to declare a public variable for our FileSystemWatcher class:

Public watchfolder As FileSystemWatcher

Add the following code to the btn_start_click procedure:

watchfolder = New System.IO.FileSystemWatcher()

'this is the path we want to monitor
watchfolder.Path = txt_watchpath.Text

'Add a list of Filter we want to specify
'make sure you use OR for each Filter as we need to
'all of those

watchfolder.NotifyFilter = IO.NotifyFilters.DirectoryName
watchfolder.NotifyFilter = watchfolder.NotifyFilter Or _
IO.NotifyFilters.FileName
watchfolder.NotifyFilter = watchfolder.NotifyFilter Or _
IO.NotifyFilters.Attributes

' add the handler to each event
AddHandler watchfolder.Changed, AddressOf logchange
AddHandler watchfolder.Created, AddressOf logchange
AddHandler watchfolder.Deleted, AddressOf logchange

' add the rename handler as the signature is different
AddHandler watchfolder.Renamed, AddressOf logrename

'Set this property to true to start watching
watchfolder.EnableRaisingEvents = True

btn_startwatch.Enabled = False
btn_stop.Enabled = True

'End of code for btn_start_click

The NotifyFilter propery is used to specify the types of changes that we want to watch. You can combine the notify filters to watch for one or more types of changes. For example, set the NotifyFilter property to Size if you want to monitor the changes in the file/folder size.

There are many NotifyFilter properties that you can set. Here’s the complete list:

  • Attributes: The attributes of the file or folder
  • CreationTime: The time the file or folder was created
  • DirectoryName: The name of the directory
  • FileName: The name of the file
  • LastAccess: The date the file or folder was last opened
  • LastWrite: The date the file or folder last had anything written to it
  • Security: The security settings of the file or folder
  • Size: The size of the file or folder

The default is the bitwise OR combination of LastWrite, FileName, and DirectoryName.

You might also like...

Comments

About the author

Jayesh Jain

Jayesh Jain New Zealand

Jayesh Jain is working as a Business Analyst in Auckland, New Zealand. He has several years of n-Tier development experience in developing interactive client solutions. He has a passion for Web ...

Interested in writing for us? Find out more.

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“XML is like violence - if it's not working for you, you're not using enough of it.”