Solved

how to implement FileSystemWatcher as a Windows Service ?

Posted on 2009-03-30
3
368 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

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

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

It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

809 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