473,846 Members | 1,975 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

FileSystemWatch er is Stable

How do I prevent the FileSystemWatch er event to keep firing while the file
is being created? When copying a file to the watched folder, the event
fires a dozen or more times! Also, the documentation states that if more
than one file is copied to the folder at the same time, a cache will queue
them up for processing, but when I drop 3 files into this folder, only the
1st (sometimes the first two) cause the event to fire.

Thanks,

Troy

Here is the problamatic Code Fragment:

protected void ListenerMethod( )

{

try

{

// Setup the Watcher

FileSystemWatch er Watcher = new FileSystemWatch er();

Watcher.Path=@" C:\WatchedFolde r";

Watcher.Filter= "*.bbf";

Watcher.NotifyF ilter=System.IO .NotifyFilters. LastAccess |
System.IO.Notif yFilters.LastWr ite;

// Add event handlers.

Watcher.Changed += new FileSystemEvent Handler(OnChang ed);

Watcher.Created += new FileSystemEvent Handler(OnChang ed);

Watcher.Deleted += new FileSystemEvent Handler(OnChang ed);

Watcher.Renamed += new RenamedEventHan dler(OnRename);

// Begin watching file events

this.Log("Start ing File Watcher service for '"+Watcher.Filt er+"' on folder:
"+Watcher.Path. ToString());

Watcher.EnableR aisingEvents=tr ue;

}

catch(Exception ex)

{

this.Log("Could not Start the Listener.
"+ex.Message,Sy stem.Diagnostic s.EventLogEntry Type.Error);

}

}

protected void OnRename(object source, RenamedEventArg s e)

{

this.Log("File Renamed from: "+e.OldName.ToS tring()+" to:
"+e.Name.ToStri ng());

this.OnChanged( source, (FileSystemEven tArgs)e);

}

protected void OnChanged(objec t source, FileSystemEvent Args e)

{

//Handles the event fired by the watcher

string FileName = e.FullPath;

System.IO.FileI nfo oFile = new FileInfo(FileNa me);

string Action = e.ChangeType.To String();

this.Log("Recei ved FileWatcher "+Action+" event for file: "+FileName+ "
("+oFile.Length .ToString()+" bytes)");

if (Action=="Chang ed")

{

try

{

this.Log("Sendi ng file: "+FileName+ " to Fox BackupHandler dll");

if (this.Process(F ileName))

this.Log("Backu p Event Handler reported Success");

else

this.Log("Backu p Event Handler Reported: "+this.LASTSTAT US.ToString()+" .
Last Error =
"+this.LASTERRO R.ToString(),Sy stem.Diagnostic s.EventLogEntry Type.Warning);

}

catch(Exception ex)

{

this.Log(ex.Mes sage+". Backup Event Handler Reported:
"+this.LASTSTAT US.ToString()+" . Last Error =
"+thisl.LASTERR OR.ToString(),S ystem.Diagnosti cs.EventLogEntr yType.Error);

}

}

}
Nov 15 '05 #1
1 3339
Hi Troy,

I know this isn't the answer that you want, but the FileSystemWatch er is
just flakey. Some time ago, I posted a message lamenting the inconsistencies
of the FileSystemWatch er. (Someone correctly pointed out that my anger
shouldn't be directed at the .NET FileSystemWatch er, but rather the O/S
which fires file notifications in an inconsistent manner.) The bottom line
is that you can only use the FileSystemWatch er as a rough guide for file
system activity. When the FSW event fires, immediately stop FSW
notifications and see if the files you want to process are available for
exclusive access. If they aren't, set a timer and try again, etc.. Once
you've processed all of your files, kill the timer and reactivate the FSW
notifications.

Sorry I don't have better news. :(

David

"Troy Murphy" <tr**@solutions oft.cc> wrote in message
news:OD******** *****@TK2MSFTNG P09.phx.gbl...
How do I prevent the FileSystemWatch er event to keep firing while the file
is being created? When copying a file to the watched folder, the event
fires a dozen or more times! Also, the documentation states that if more
than one file is copied to the folder at the same time, a cache will queue
them up for processing, but when I drop 3 files into this folder, only the
1st (sometimes the first two) cause the event to fire.

Thanks,

Troy

Here is the problamatic Code Fragment:

protected void ListenerMethod( )

{

try

{

// Setup the Watcher

FileSystemWatch er Watcher = new FileSystemWatch er();

Watcher.Path=@" C:\WatchedFolde r";

Watcher.Filter= "*.bbf";

Watcher.NotifyF ilter=System.IO .NotifyFilters. LastAccess |
System.IO.Notif yFilters.LastWr ite;

// Add event handlers.

Watcher.Changed += new FileSystemEvent Handler(OnChang ed);

Watcher.Created += new FileSystemEvent Handler(OnChang ed);

Watcher.Deleted += new FileSystemEvent Handler(OnChang ed);

Watcher.Renamed += new RenamedEventHan dler(OnRename);

// Begin watching file events

this.Log("Start ing File Watcher service for '"+Watcher.Filt er+"' on folder: "+Watcher.Path. ToString());

Watcher.EnableR aisingEvents=tr ue;

}

catch(Exception ex)

{

this.Log("Could not Start the Listener.
"+ex.Message,Sy stem.Diagnostic s.EventLogEntry Type.Error);

}

}

protected void OnRename(object source, RenamedEventArg s e)

{

this.Log("File Renamed from: "+e.OldName.ToS tring()+" to:
"+e.Name.ToStri ng());

this.OnChanged( source, (FileSystemEven tArgs)e);

}

protected void OnChanged(objec t source, FileSystemEvent Args e)

{

//Handles the event fired by the watcher

string FileName = e.FullPath;

System.IO.FileI nfo oFile = new FileInfo(FileNa me);

string Action = e.ChangeType.To String();

this.Log("Recei ved FileWatcher "+Action+" event for file: "+FileName+ "
("+oFile.Length .ToString()+" bytes)");

if (Action=="Chang ed")

{

try

{

this.Log("Sendi ng file: "+FileName+ " to Fox BackupHandler dll");

if (this.Process(F ileName))

this.Log("Backu p Event Handler reported Success");

else

this.Log("Backu p Event Handler Reported: "+this.LASTSTAT US.ToString()+" .
Last Error =
"+this.LASTERRO R.ToString(),Sy stem.Diagnostic s.EventLogEntry Type.Warning);

}

catch(Exception ex)

{

this.Log(ex.Mes sage+". Backup Event Handler Reported:
"+this.LASTSTAT US.ToString()+" . Last Error =
"+thisl.LASTERR OR.ToString(),S ystem.Diagnosti cs.EventLogEntr yType.Error);

}

}

}

Nov 15 '05 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
9123
by: Josh Usovsky | last post by:
I'm setting up a watched folder using FileSystemWatcher. When I drop a small file into the watched folder, I can respond to a .Created event and process the file with other code. However, if I try copying a large file into the watched folder, the .Created event is fired off immediately and not when the file is finished copying. I have tried waiting for a certain number of .Changed events to be fired after the initial .Created event, and...
7
4126
by: Allen Anderson | last post by:
I'm trying to figure out a way to catch when a file has been written to a directory. I currently have it where I can catch when the file begins writing, but this isn't helpful as I need to know when its done. Does anyone know the right combination of flags to use to catch when the file has been written and closed? (here is my current code). // member variable FileSystemWatcher watcher = new FileSystemWatcher();
2
2232
by: Jet Leung | last post by:
Hi all, I had made a program to watching files in my directory. I had used a instance of FileSystemWatcher to do my work.And I had add some events of the FileSystemWatcher , for example onChange, onRename and so on. And I had made this program as a windows service.As I know, if I delete a file from my directory, this behavior will active this program and do something what I want to do. But after I install this program as a windows service...
13
9200
by: David | last post by:
I have been working on trying to write a directory watcher service. One of the requirments is that it be able to watch multiple directories, not sub directories of one parent directory, but just multiple directories. I have hit a snag and don't know how to get around it. Basically I read in a list of directories from the app.config and stuff them into an array, so that I have something like this: sDirsToWatch = "C:\Temp"
3
14315
by: Stampede | last post by:
Hi, I want to use the FileSystemWatcher in a Windows Service. I read an article, where the author created the FileSystemWatcher object in a seperate thread and when the event is fired, he started a working thread for processing the file, created a new FileSystemWatcher (as he said for real time processing), and then called the join method for the first thread. I can't really see the sence in this. Aren't the events of the...
20
4533
by: J-T | last post by:
We are working on an asp.net application which is a 3-tier application.I was aksed to create a component which monitors a folder and gets the file and pass them to a class library in our business logic layer(so far so good and easy).I initialize my class which is using a FileSystemWatcher in my Global.asax and everything works fine.I have found FileSystemWatcher class not very reliable and sometimes it behavies unexpectedly.I'm afriad that...
12
7464
by: ljh | last post by:
Has anyone else noticed that the FileSystemWatcher raises the changed event twice when a file is changed? Do you have any idea why this is the case?
5
24223
by: Goran Djuranovic | last post by:
Hi all, I have a file system watcher service that works fine on a local hard drive, but will not work across the network. I tried both: mapping the drive and "\\..." path both no luck. I don't receive any errors, it is just that FileSystemWatcher doesn't see any files dropped in the folder. What could be wrong? Thanks Goran
5
5615
by: =?Utf-8?B?Sm9obiBT?= | last post by:
I am trying to find out if there is a way to tell if there is already a filesystemwatcher (created by a webservice) monitoring a folder. I have a webservice that creates a filesystemwatcher, monitors a folder and then returns the contents of the new/changed files. However, if the client app loses connection to the webservice without closing the filewatcher, and then reconnects (and thus creates a new watcher), I believe I end up with...
0
9725
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10976
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10640
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10330
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9477
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
5714
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5906
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
4111
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3157
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.