연습: 파일 시스템 이벤트에 응답

업데이트: 2007년 11월

이 페이지의 절차에서는 FileSystemWatcher 구성 요소를 만들고 로컬 컴퓨터의 디렉터리를 가리키도록 지정한 다음 Filter 속성을 사용하여 텍스트 파일에 대한 변경 내용만을 조사하는 방법을 보여 줍니다. Created 이벤트와 Changed 이벤트가 발생할 때 응답하는 이벤트 처리기를 만들고 폼을 사용하여 이러한 이벤트의 결과를 표시합니다.

다음 단계에서는 디렉터리 수준 이벤트에 응답하기 위해 함께 작동하는 Windows Form과 FileSystemWatcher 구성 요소 인스턴스를 만듭니다.

참고:

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

응용 프로그램 만들기

응용 프로그램을 위한 폼과 구성 요소를 만들려면

  1. 새 프로젝트 대화 상자에서 Visual Basic 또는 Visual C#Windows 응용 프로그램을 만든 다음 이름을 MyWatcher로 지정합니다.

  2. 도구 상자의 Windows Forms 탭에서 두 개의 Label 컨트롤을 디자이너 화면으로 끌어 옵니다.

  3. 도구 상자의 구성 요소 탭을 클릭한 다음 FileSystemWatcher를 구성 요소의 디자이너 화면으로 끌어 옵니다. 기본적으로 이 구성 요소의 이름은 FileSystemWatcher1입니다.

디렉터리 감시

다음 단계에서는 조사 대상을 결정하기 위해 구성 요소의 여러 속성을 설정합니다. 이러한 속성을 설정함으로써 구성 요소에서는 로컬 컴퓨터의 지정된 디렉터리를 조사하고 파일 확장명이 .txt인 파일의 생성을 조사합니다.

FileSystemWatcher 구성 요소의 속성을 설정하려면

  1. 이전 단계에서 만든 FileSystemWatcher 구성 요소를 클릭하고 속성 창에서 해당 속성을 봅니다.

  2. 구성 요소의 이름을 myWatcher로 설정합니다.

  3. FileSystemWatcher 구성 요소에서 로컬 컴퓨터의 디렉터리를 조사하도록 Path 속성을 설정합니다. 예를 들어 Microsoft Windows 2000 컴퓨터의 경우, 구성 요소에서 내 문서 디렉터리를 조사하도록 하려면 Path 속성에 다음과 같은 경로를 입력합니다.

    C:\Documents and Settings\yourusername\My Documents\
    
    팁:

    이 예제를 따를 때 로컬 컴퓨터의 다른 디렉터리 경로를 사용할 수도 있습니다.

  4. Filter 속성을 *.txt로 설정하여 구성 요소가 .txt 파일 이름 확장명으로 끝나는 파일만 조사하도록 합니다.

발생하는 이벤트 처리

다음 단계에서는 구성 요소에 대해 ChangedCreated 이벤트가 발생할 때 수행해야 할 작업을 지정하는 두 개의 이벤트 처리기를 정의합니다.

구성 요소를 구성하려면

  1. FileSystemWatcher 구성 요소를 두 번 클릭합니다. Changed 이벤트에 대한 기본 이벤트 처리기가 코드 편집기에 나타납니다.

    참고:

    자세한 내용은 Windows Forms에서 이벤트 처리기 만들기를 참조하십시오.

  2. 아래와 같은 코드를 사용하여 이벤트가 발생했는지 확인하는 간단한 텍스트 문자열을 표시할 수 있습니다.

    Private Sub myWatcher_Changed(ByVal sender As System.Object, _
       ByVal e As System.IO.FileSystemEventArgs) Handles myWatcher.Changed
       Me.Label1.Text = "Changes made to: " & e.FullPath
    End Sub
    
    private void myWatcher_Changed(object sender, 
       System.IO.FileSystemEventArgs e)
    {
       label1.Text = "Changes made to: " + e.FullPath;
    }
    
  3. 구성 요소에서 Created 이벤트가 발생할 때 응용 프로그램에서 수행해야 할 작업을 지정하는 이벤트 처리기를 만듭니다. 이벤트 처리기를 만드는 방법에 대한 자세한 내용은 방법: 디자이너를 사용하여 이벤트 처리기 만들기를 참조하십시오. 아래와 같은 코드를 추가하여 새로 만든 파일의 전체 경로를 표시합니다. 작업이 끝나면 코드는 다음 예제와 같은 형태가 됩니다.

    Private Sub myWatcher_Created(ByVal sender As System.Object, _
       ByVal e As System.IO.FileSystemEventArgs) Handles myWatcher.Created
       Me.Label2.Text = "The file: " & e.FullPath & _
          " has been added to your directory"
    End Sub
    
    private void myWatcher_Created(object sender,
       System.IO.FileSystemEventArgs e)
    {
       label2.Text = "The file: " + e.FullPath + 
          " has been added to your directory.";
    }
    
  4. 모든 파일을 저장한 다음 응용 프로그램을 빌드하고 실행합니다.

구성 요소 테스트

다음 단계에서는 이벤트 처리기에서 ChangedCreated 이벤트가 발생하도록 하기 위해 구성 요소에서 조사하는 디렉터리를 직접 변경합니다.

FileSystemWatcher 구성 요소를 테스트하려면

  1. 이전 단계에서 만든 응용 프로그램을 실행합니다.

  2. Windows 탐색기를 사용하여 FileSystemWatcher 구성 요소에서 조사하도록 설정한 디렉터리로 이동합니다.

  3. 메모장을 시작하고 새 텍스트 파일을 만듭니다. 2단계에서 찾은 디렉터리에 이 파일을 저장한 다음 닫습니다.

    참고:

    이렇게 하면 CreatedChanged 이벤트가 발생하고 정의해 놓은 처리기가 실행됩니다.

  4. 폼으로 돌아가면 생성을 알리는 메시지가 레이블에 나타납니다.

  5. 위에서 만든 텍스트 파일을 열고 텍스트를 몇 줄 입력한 다음 다시 저장합니다.

    참고:

    이렇게 하면 Changed 이벤트가 발생하고 정의해 놓은 처리기가 실행됩니다.

  6. 폼으로 돌아가면 변경을 알리는 메시지가 레이블에 나타납니다.

참고 항목

작업

방법: FileSystemWatcher 구성 요소 인스턴스 만들기

개념

파일 시스템 이벤트 모니터링 소개

기타 리소스

Label 컨트롤(Windows Forms)