Solved

how to implement FileSystemWatcher as a Windows Service ?

Posted on 2009-03-30
3
370 Views
Last Modified: 2013-11-07
funwithdotnet mentioned that a good way to improve performance instead of using the file system object per each product in the web catalog, is to implement FileSystemWatcher in a Windows Service.

how to do that?

thanks in advance.
0
Comment
Question by:dimensionav
3 Comments
 
LVL 14

Accepted Solution

by:
jjardine earned 500 total points
ID: 24025311
this site gives you a tutorial for creating a windows service.  That would be a good place to start.  http://www.codeguru.com/vb/gen/vb_system/services/article.php/c4825
0
 

Author Closing Comment

by:dimensionav
ID: 31564655
Yes indeed good information, thanks.
0
 
LVL 12

Expert Comment

by:funwithdotnet
ID: 24045669
I'm probably not the best person to ask about a web service. I've done a couple of 'em, but it's been awhile.

Attached is a sample FileSystemWatcher. It might help.
Imports System.IO
 
Public Class FileWatcherTool
 
    Private myWatchFolder As String
    Public myFileWatcher As FileSystemWatcher
    Private myCurrentFileEventArgs As FileSystemEventArgs
    Private myWatchStatus As Boolean = False
 
    ' This is  a sample FileSystemWatcher project.
    Public Sub New()
 
        ' Simulate set path.
        myWatchFolder = "c:\path\watchfolder"
 
        ' Simulate test condition(s).
        myWatchStatus = True
 
        ' Start watch.
        StartWatch()
    End Sub
 
#Region "FileWatcher"
    Private Sub StartWatch()
        If myWatchStatus Then
            myFileWatcher = New System.IO.FileSystemWatcher()
            myFileWatcher.Path = myWatchFolder
            myFileWatcher.NotifyFilter = NotifyFilters.LastAccess Or NotifyFilters.LastWrite Or NotifyFilters.FileName Or NotifyFilters.DirectoryName
            AddHandler myFileWatcher.Created, AddressOf NewFileCreated
            myFileWatcher.EnableRaisingEvents = True ' start watching
        End If
    End Sub
 
    Private Sub NewFileCreated(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
        If e.ChangeType = WatcherChangeTypes.Created Then
            myCurrentFileEventArgs = e
            Sub1()
        End If
    End Sub
#End Region
 
    Private Sub Sub1()
        ' Do something.
    End Sub
 
    ' A handy method ...
    Private Function FileIsReadyForUse(ByVal fileName As String) As Boolean
        Dim output As Boolean = False
        Try
            Dim myFS As FileStream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None)
            myFS.Close()
            myFS.Dispose()
            myFS = Nothing
            output = True
        Catch ex As IO.IOException
            'No exclusive access
            output = False
        Catch ex As Exception
            ' Other exception
            output = False
        End Try
        Return output
    End Function
 
End Class

Open in new window

0

Featured Post

Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question