1+
2+ using FileWatcherEx ;
3+
4+ namespace Demo
5+ {
6+ public partial class Form1 : Form
7+ {
8+ private FileSystemWatcherEx _fw = new ( ) ;
9+
10+ public Form1 ( )
11+ {
12+ InitializeComponent ( ) ;
13+ }
14+
15+
16+
17+ private void btnStart_Click ( object sender , EventArgs e )
18+ {
19+ _fw = new FileSystemWatcherEx ( txtPath . Text . Trim ( ) ) ;
20+
21+ _fw . OnRenamed += FW_OnRenamed ;
22+ _fw . OnCreated += FW_OnCreated ;
23+ _fw . OnDeleted += FW_OnDeleted ;
24+ _fw . OnChanged += FW_OnChanged ;
25+ _fw . OnError += FW_OnError ;
26+
27+ _fw . SynchronizingObject = this ;
28+
29+ _fw . Start ( ) ;
30+
31+ btnStart . Enabled = false ;
32+ btnSelectFolder . Enabled = false ;
33+ txtPath . Enabled = false ;
34+ btnStop . Enabled = true ;
35+ }
36+
37+ private void FW_OnError ( object sender , ErrorEventArgs e )
38+ {
39+ if ( txtConsole . InvokeRequired )
40+ {
41+ txtConsole . Invoke ( FW_OnError , sender , e ) ;
42+ }
43+ else
44+ {
45+ txtConsole . Text += "[ERROR]: " + e . GetException ( ) . Message + "\r \n " ;
46+ }
47+ }
48+
49+ private void FW_OnChanged ( object sender , FileChangedEvent e )
50+ {
51+ txtConsole . Text += string . Format ( "[cha] {0} | {1}" ,
52+ Enum . GetName ( typeof ( ChangeType ) , e . ChangeType ) ,
53+ e . FullPath ) + "\r \n " ;
54+ }
55+
56+ private void FW_OnDeleted ( object sender , FileChangedEvent e )
57+ {
58+ txtConsole . Text += string . Format ( "[del] {0} | {1}" ,
59+ Enum . GetName ( typeof ( ChangeType ) , e . ChangeType ) ,
60+ e . FullPath ) + "\r \n " ;
61+ }
62+
63+ private void FW_OnCreated ( object sender , FileChangedEvent e )
64+ {
65+ txtConsole . Text += string . Format ( "[cre] {0} | {1}" ,
66+ Enum . GetName ( typeof ( ChangeType ) , e . ChangeType ) ,
67+ e . FullPath ) + "\r \n " ;
68+ }
69+
70+ private void FW_OnRenamed ( object sender , FileChangedEvent e )
71+ {
72+ txtConsole . Text += string . Format ( "[ren] {0} | {1} ----> {2}" ,
73+ Enum . GetName ( typeof ( ChangeType ) , e . ChangeType ) ,
74+ e . OldFullPath ,
75+ e . FullPath ) + "\r \n " ;
76+ }
77+
78+
79+
80+ private void btnStop_Click ( object sender , EventArgs e )
81+ {
82+ _fw . Stop ( ) ;
83+
84+ btnStart . Enabled = true ;
85+ btnSelectFolder . Enabled = true ;
86+ txtPath . Enabled = true ;
87+ btnStop . Enabled = false ;
88+ }
89+
90+
91+ private void btnSelectFolder_Click ( object sender , EventArgs e )
92+ {
93+ var fb = new FolderBrowserDialog ( ) ;
94+
95+
96+ if ( fb . ShowDialog ( ) == DialogResult . OK )
97+ {
98+ txtPath . Text = fb . SelectedPath ;
99+
100+ _fw . Stop ( ) ;
101+ _fw . Dispose ( ) ;
102+ }
103+ }
104+
105+ private void Form1_FormClosing ( object sender , FormClosingEventArgs e )
106+ {
107+ _fw . Stop ( ) ;
108+ _fw . Dispose ( ) ;
109+ }
110+ }
111+ }
0 commit comments