monitoring foler for file modification

  • Thread starter Thread starter Ron Vecchi
  • Start date Start date
R

Ron Vecchi

Hi all,

Can someone point me in the direction on this one, resources or examples.
I am writing a Windows Service to monitor a folder. When I file is modified
within the folder or any subfolders it should write the name of the file to
a xml file.
Then at a specifed time all the files in the xml quene will be backed up on
a network share.

How would I go about monitoring a folder and all subfolders and detect when
a file within has been modifed?


Thanks,
Ron Vecchi
 
Ron,
Have you looked at the System.IO.FileSystemWatcher class?

It allows you to watch for changes in a specified directory, and its
subdirectories.

Hope this helps
Jay
 
Check out the FileSystemWatcher documentation in the .NET
framework SDK reference. It has an example that claims to do
what you want. I'm attaching the C# example from that page
below.

Andrew Queisser

***********************
public class Watcher
{

public static void Main()
{

string[] args = System.Environment.GetCommandLineArgs();

// If a directory is not specified, exit program.
if(args.Length != 2)
{
// Display the proper way to call the program.
Console.WriteLine("Usage: Watcher.exe (directory)");
return;
}

// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = args[1];
/* Watch for changes in LastAccess and LastWrite times, and
the renaming of files or directories. */
watcher.NotifyFilter = NotifyFilters.LastAccess |
NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
// Only watch text files.
watcher.Filter = "*.txt";

// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

// Begin watching.
watcher.EnableRaisingEvents = true;

// Wait for the user to quit the program.
Console.WriteLine("Press \'q\' to quit the sample.");
while(Console.Read()!='q');
}

// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}

private static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath,
e.FullPath);
}
}
 
Back
Top