728x90

FileSystemWatcher 로 지정된 폴더를 모니터링(감시) 할 수 있다.

로컬 및 네트워크 드라이브, 원격 파일까지 감시가 가능하다.

파일/폴더의 변경, 삭제, 수정 에 대해 감시가 가능하고

감시 대상(파일 폴더)에 대해 사이즈 변경, 이름 변경 등의 필터링이 가능하다

또한 특정 파일, 특정 확장자 기준으로 필터링 할수 있다.

 

(아래 예제는 간단하게 어느 특정 폴더에 파일이 추가된 경우 처리하는 코드입니다.)

        FileSystemWatcher fsw = new ileSystemWatcher();
        public FileSystemWatcherTestForm()
        {
            InitializeComponent();
        }

        private void directoryButton_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fd = new FolderBrowserDialog();
            if (fd.ShowDialog() == DialogResult.OK)
            {
                this.watchTextBox.Text = fd.SelectedPath;
            }
        }

        private void watchFolderButton_Click(object sender, EventArgs e)
        {
            fsw.Path = this.watchTextBox.Text;
            fsw.EnableRaisingEvents = true;
            fsw.Created += Fsw_Created;

            //fsw.NotifyFilter = System.IO.NotifyFilters.FileName | System.IO.NotifyFilters.DirectoryName | System.IO.NotifyFilters.Size;
            //fsw.Changed += fsw_Changed;
            //fsw.Deleted += fsw_Deleted;
            //fsw.Renamed += fsw_Renamed;
        }

        /// <summary>
        /// FileSystemWatcher 가 바라보는 폴더에 파일이 추가된 경우 발생되는 이벤트입니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Fsw_Created(object sender, FileSystemEventArgs e)
        {
            try
            {
                Invoke(new MethodInvoker(delegate ()
                {
                     this.copyListBox.Items.Add(e.Name);
                 }));
            }
            catch (Exception ex)
            {

            }
        }

 

FileSystemWatcherTest.zip

 

 

728x90
Posted by kjun.kr
,