<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8"><title></title><meta name="GENERATOR" content="OpenOffice.org 2.4  (Win32)"><style type="text/css">
        &lt;!--
                @page { size: 8.5in 11in; margin: 0.79in }
                P { margin-bottom: 0.08in }
        --&gt;
        </style>
<p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif">        Attached
is a FileSystemWatcher class that I wrote to use instead of Mono&#39;s
FileSystemWatcher in System.IO for Mac OS X (at least Tiger). I have
not tried, but I believe the FileSystemWatcher supplied with mono may
work with Leopard since Leopard adds a feature called FSEvents.  The
FileSystemWatcher in Mono on Mac does not catch most onChanged events
for files edited by the user; though it does seem to catch most
onCreated and onDeleted.  I noticed the bug posted on the Mono site,
but the Priority was P5 (none), so I had to come up with an
alternative.  This solution is not great, but I am sending it out
there for anyone who may need a FileSystemWatcher for Mac.  It is
intended to be a drop in replacement for the
System.IO.FileSystemWatcher so hopefully it won&#39;t require any code
changes.</font></font></p>
<p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif">        This
implementation is different than the typical Windows/.NET method in that
it does not rely on the OS or any File System Events from the OS. 
Instead, it &#39;samples&#39; the folder to watch at a given interval
[TimerInterval] and then compares to the last sample.  That said,
this method has more overhead than the File System Events concept and
therefore may not be good for large folders.  On the upside, it is OS
independent and so can be used as a fallback for some OS&#39;s like
Tiger.</font></font></p>
<p style="margin-bottom: 0in;"><font size="2"><br></font>
</p>
<p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif">What
is different from Windows implementation:</font></font></p>
<ul><li><p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Directories
        do not raise OnChanged() for &#39;LastAccess&#39;.  This is because this
        routine was accessing the folders and changing the LastAccess Date.</span></font></font></p>
        </li><li><p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Rename
        is not supported.  For renamed items, you will get separate deleted and a
        created events.</span></font></font></p>
        </li><li><p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Internal
        BufferSize is ignored.  The property is there to not break existing
        code.</span></font></font></p>
        </li><li><p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Does
        not raise &#39;as many&#39; changed events as System.IO.FileSystemWatcher on
        Windows.  Windows implementation may raise 3 events for 1 save of a
        file.  This method raises 1.  I prefer this method more, but it is a
        difference worth noting.</span></font></font></p></li><li><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Added property [TimerInterval] which takes the interval in milliseconds between samples.&nbsp; This is how often the folder is <i>checked </i>for changes.&nbsp; Default is 1000 (1 sec)<br>
</span></font></font></li></ul>
<p style="margin-bottom: 0in;"><font size="2"><br></font>
</p>
<p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Disclaimer:
I am sure there is a bug or many.  This is posted to offer one
approach for people interested to build on.  I am using this class
and will continue to test and tweak.  If you want me to send you any
fixes, shoot me an email.</span></font></font></p>
<p style="margin-bottom: 0in;"><font size="2"><br></font>
</p>
<p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Mono
bug this is in response to: &nbsp;&nbsp; <a href="https://bugzilla.novell.com/show_bug.cgi?id=428270">https://bugzilla.novell.com/show_bug.cgi?id=428270</a> &nbsp; &nbsp;&nbsp; and &nbsp;&nbsp; <a href="http://www.mail-archive.com/mono-bugs@lists.ximian.com/msg53866.html">http://www.mail-archive.com/mono-bugs@lists.ximian.com/msg53866.html</a></span></font></font>
</p>
<p style="margin-bottom: 0in;"><font size="2"><br></font>
</p>
<p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Thanks,</span></font></font></p>
<p style="margin-bottom: 0in;"><font color="#000000" size="2"><font face="Arial, sans-serif"><span lang="">Kevin
Heeney</span></font></font></p>