Solved

how to implement FileSystemWatcher as a Windows Service ?

Posted on 2009-03-30
3
372 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

Containers & Docker to Create a Powerful Team

Containers are an incredibly powerful technology that can provide you and/or your engineering team with huge productivity gains. Using containers, you can deploy, back up, replicate, and move apps and their dependencies quickly and easily.

Question has a verified solution.

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

Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Come and listen to Percona CEO Peter Zaitsev discuss what’s new in Percona open source software, including Percona Server for MySQL (https://www.percona.com/software/mysql-database/percona-server) and MongoDB (https://www.percona.com/software/mongo-…
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…

717 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