File/folder watcher

Discussion in 'Visual Basic ( VB )' started by Chandra_ags, May 22, 2009.

  1. Chandra_ags

    Chandra_ags New Member

    Joined:
    May 22, 2009
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Hi, I am a new VB developer
    I have created a file watcher but I have a problem with the file watcher

    here is the code:
    Code:
     
    Inherits System.Windows.Forms.Form
    Private watchfolder As IO.FileSystemWatcher
     
     
    Private Sub btnstart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnstart.Click
    watchfolder = New System.IO.FileSystemWatcher
    'this is the path we want to monitor
    watchfolder.Path = txtfolder.Text
    watchfolder.NotifyFilter = IO.NotifyFilters.DirectoryName
    watchfolder.NotifyFilter = watchfolder.NotifyFilter Or IO.NotifyFilters.FileName
    watchfolder.NotifyFilter = watchfolder.NotifyFilter Or IO.NotifyFilters.Attributes
     
    'Set this property to true to start watching
    watchfolder.EnableRaisingEvents = True
    btnstart.Enabled = False
    btnstop.Enabled = True
     
    AddHandler watchfolder.Changed, AddressOf logchange
    AddHandler watchfolder.Created, AddressOf logchange
    AddHandler watchfolder.Deleted, AddressOf logchange
     
    End Sub
     
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    txtmonitor.Text = "haha"
    End Sub
     
    Private Sub btnstop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnstop.Click
     
    ' Stop watching the folder
    watchfolder.EnableRaisingEvents = False
    btnstart.Enabled = True
    btnstop.Enabled = False
     
    End Sub
     
    Public Sub logchange(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)
    'Frm = New Form1
    MsgBox(txtfolder.Text)
    MsgBox(txtmonitor.Text)
    If e.ChangeType = IO.WatcherChangeTypes.Changed Then
    txtmonitor.Text &= "File " & e.FullPath & " has been modified" & vbCrLf
    End If
    If e.ChangeType = IO.WatcherChangeTypes.Created Then
    txtmonitor.Text &= "File " & e.FullPath & " has been created" & vbCrLf
    End If
    If e.ChangeType = IO.WatcherChangeTypes.Deleted Then
    txtmonitor.Text &= "File " & e.FullPath & " has been deleted" & vbCrLf
    End If
    End Sub
     
    And I have the Following error

    InvalidOperationException
    "Cross-thread operation not valid: Control 'txtmonitor' accessed from a thread other than the thread it was create on."

    Please Help me..
    thank you...
     
    Last edited by a moderator: May 22, 2009

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice