Монитор изменений папки, выполненный в Visual Basic 2010, не записывает изменения правильно

Мы создали программу на Visual Basic 2010, которая отслеживает и записывает изменения в папке, например. когда файл удаляется, когда файл переименовывается, когда файл создается и какие файлы, но он 'Это проблема. Я'мы написали код для создания новой строки при внесении другого изменения, когда изменение было внесено, оно записывает его в файл с именем log.txt, но журнал выглядит только как "Файл log.txt был изменен потому что программа, когда она записывает изменения в журнал, изменяет log.txt для записи журнала, но странно, что она удаляет все в документе и пишет "Файл log..txt был изменен даже если я написал в коде, чтобы сделать новую строку перед записью. Может кто-нибудь помочь мне с этой проблемой? Вот's код:

Imports System.IO
Imports System.Diagnostics
Public Class Form1
Public watchfolder As FileSystemWatcher

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    watchfolder = New System.IO.FileSystemWatcher()

    'this is the path we want to monitor
    watchfolder.Path = TextBox1.Text

    'Add a list of Filter we want to specify
    'make sure you use OR for each Filter as we need to
    'all of those 

    watchfolder.NotifyFilter = IO.NotifyFilters.DirectoryName
    watchfolder.NotifyFilter = watchfolder.NotifyFilter Or _
                               IO.NotifyFilters.FileName
    watchfolder.NotifyFilter = watchfolder.NotifyFilter Or _
                               IO.NotifyFilters.Attributes

    ' add the handler to each event
    AddHandler watchfolder.Changed, AddressOf logchange
    AddHandler watchfolder.Created, AddressOf logchange
    AddHandler watchfolder.Deleted, AddressOf logchange

    ' add the rename handler as the signature is different
    AddHandler watchfolder.Renamed, AddressOf logrename

    'Set this property to true to start watching
    watchfolder.EnableRaisingEvents = True

    Button1.Enabled = False
    Button2.Enabled = True

    'End of code for btn_start_click
End Sub
Private Sub logchange(ByVal source As Object, ByVal e As  _
                    System.IO.FileSystemEventArgs)
    If e.ChangeType = IO.WatcherChangeTypes.Changed Then
        Dim writer As New IO.StreamWriter("log.txt")
        writer.WriteLine(Chr(13) & "File" + " " + e.FullPath + " " + "has been modified")
        writer.Close()
    End If
    If e.ChangeType = IO.WatcherChangeTypes.Created Then
        Dim writer As New IO.StreamWriter("log.txt")
        writer.WriteLine(Chr(13) & "File" + " " + e.FullPath + " " + "has been created")
        writer.Close()
    End If
    If e.ChangeType = IO.WatcherChangeTypes.Deleted Then
        Dim writer As New IO.StreamWriter("log.txt")
        writer.WriteLine(Chr(13) & "Filde" + " " + e.FullPath + " " + "has been deleted")
        writer.Close()
    End If
End Sub
Public Sub logrename(ByVal source As Object, ByVal e As  _
                        System.IO.RenamedEventArgs)
    Dim writer As New IO.StreamWriter("log.txt")
    writer.WriteLine(Chr(13) & "File" + " " + e.FullPath + "has been renamed to" + " " + e.Name)
    writer.Close()
End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    ' Stop watching the folder
    watchfolder.EnableRaisingEvents = False
    Button1.Enabled = True
    Button2.Enabled = False
End Sub

End Class

Ответы на вопрос(2)

Ваш ответ на вопрос