FileSystemWatcher를 이용한 파일,폴더 모니터링
*
Public Class Form1

Private Sub FileSystemWatcher1_Changed(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed, FileSystemWatcher1.Deleted, FileSystemWatcher1.Created
ListBox1.Items.Add(e.FullPath)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If ListBox1.SelectedIndex <> -1 Then
System.Diagnostics.Process.Start(ListBox1.SelectedItem)
End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SaveFileDialog1.ShowDialog()
If ListBox1.SelectedIndex <> -1 Then
FileCopy(ListBox1.SelectedItem, SaveFileDialog1.FileName)
End If
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If ListBox1.SelectedIndex <> -1 Then
Kill(ListBox1.SelectedItem)
End If
End Sub

Private Sub FileSystemWatcher1_Renamed(ByVal sender As System.Object, ByVal e As System.IO.RenamedEventArgs) Handles FileSystemWatcher1.Renamed
ListBox1.Items.Add(e.OldFullPath + " 가 " + e.Name + " 로 이름이 변경 되었습니다")
End Sub
End Class

 

 

1.png

 

* 지정한 경로의 드라이브, 폴더에 폴더,파일의 변경이 있을 경우 이벤트가 발생한다

* 하위폴더도 감시(?) 할려면 FileSystemWatcher속성에서 IncludeSubdirectories를 Ture로 변경한다

* 유투브 예제에 폴더,파일 이름이 변경 되었을때 이벤트를 표시해주는 코드를 추가 했음

*소스파일 : 20131230-FileSystemWatcher.zip

 

<보완 해봐야 할것>

1.폴더,파일 생성,삭제,복사를 구분해서 표시 해보자

2.하위폴더에  이벤트 발생시에 ListBox에 두줄이 표시돼는 현상을 해결해 보자

이 게시물을

댓글'2'
V닉맨 (작성자)
  • 2014.01.02
  • 수정: 2014.01.02 08:40:38

<보완점 수정>

1.생성, 삭제, 변경 코드

 

Private Sub FileSystemWatcher1_Created(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Created
        ListBox1.Items.Add(e.FullPath + " 가 생성 되었습니다")
    End Sub

    Private Sub FileSystemWatcher1_Deleted(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Deleted
        ListBox1.Items.Add(e.FullPath + " 가 삭제 되었습니다")
    End Sub

    Private Sub FileSystemWatcher1_Changed(ByVal sender As System.Object, ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed
        ListBox1.Items.Add(e.FullPath + " 가 변경 되었습니다")
    End Sub

 

2.하위폴더에서 이벤트 발생시에 두줄이 표시되는 것은 Changed와 나머지 이벤트가 같이 발생하기 때문인것 으로  보입니다 

이 댓글을

교교
  • 2014.01.03
Dim SourceFile, DestinationFile As String
SourceFile = "SRCFILE"   ' Define source file name.
DestinationFile = "DESTFILE"   ' Define target file name.
FileCopy(SourceFile, DestinationFile)   ' Copy source to target.

이 댓글을

공유하기

SEARCH

MENU NAVIGATION