> 文章列表 > filesystemwatcher不触发(filesystemwatcher)

filesystemwatcher不触发(filesystemwatcher)

filesystemwatcher不触发(filesystemwatcher)

很多人对filesystemwatcher不触发,filesystemwatcher不是很了解那具体是什么情况呢,现在让我们一起来瞧瞧吧!

1、打开VS,选择Visual C#模板创建数据绑定应用程序。输入名称FileSystemWatcherTest,并指定其位置,点击确认按钮进入代码编写界面。

2、准备一个文本框控件拖入到表格一界面中,点击右上角三角形,弹出文本框任务,选择在父容器中停靠。该文本框将用于监控外部记事本改变时显示改动后的内容。

3、添加一个名为我的观察者的新类。可点击对菜单项中的【项目】在其下拉菜单中找到【添加类】并点击,弹出添加新项窗口,在点击C#项中【类】,输入名称我的观察者,点击【添加】按钮

4、在MyWatcher.cs页面中添加复制粘贴如下代码:

5、使用系统

6、使用系统。集合。泛型;

7、使用系统。木卫一;

8、使用系统100 . Linq

9、使用系统。文本;

10、使用系统。线程。任务;

11、命名空间FileSystemWatcherTest

12、{

13、我的观察者类

14、{

15、公共我的观察者(动态表单测试,字符串路径)

16、{

17、这个FormTest=FormTest

18、这个. Path=路径;

19、}

20、私有文件系统观察器watcher=null

21、私有动态表单测试;

22、内部字符串路径

23、{

24、设置

25、{

26、//观察者。路径=值;

27、WatcherStrat(值);

28、}

29、}

30、私有void WatcherStrat(字符串路径)

31、{

32、if (watcher==null)

33、{

34、watcher=新文件系统watcher();

35、系统10 . IO。FileInfo f=新的文件信息(路径);

36、观察者Path=f . DirectoryName

37、观察者. changed=新文件系统eventhandler(on changed);

38、观察者EnableRaisingEvents=true

39、观察者NotifyFilter=NotifyFilters .属性|

40、NotifyFiltersCreationTime |

41、通知过滤器目录名|

42、通知过滤器文件名|

43、NotifyFiltersLastAccess |

44、NotifyFiltersLastWrite |

45、通知过滤器安全性|

46、通知过滤器尺寸;

47、观察者IncludeSubdirectories=true

48、观察者Filter=\' * \' f . Extension

49、}

50、其他

51、{

52、系统10 . IO。FileInfo f=新的文件信息(路径);

53、观察者路径=f .全名

54、观察者Filter=\' * \' f . Extension

55、}

56、}

57、私有void OnChanged(对象源,文件系统事件参数e)

58、{

59、形式测试.TxtChanged(观察器。路径\\ \\ \' e . Name);

60、}

61、}

62、}

63、在表格一页面中添加复制粘贴如下代码:

64、使用系统;

65、使用系统。集合。泛型;

66、使用系统。组件模型;

67、使用系统。数据;

68、使用系统。绘图;

69、使用系统100 . Linq

70、使用系统。文本;

71、使用系统。线程。任务;

72、使用系统窗户。形式

73、命名空间FileSystemWatcherTest

74、{

75、公共分部类表单1 :表单

76、{

77、公共表单1()

78、{

79、初始化组件();

80、我的守望者m守望者=新我的守望者(这,\' 1。txt’);

81、}

82、公共void TxtChanged(字符串路径)

83、{

84、系统。新系统10 . IO。StreamReader(路径);

85、string str=Sr . ReadToEnd();

86、Sr . Close();

87、RichTextBox1Text=str

88、}

89、私有委托虚空反射(字符串s);

90、私有空的线程(字符串s)//用户界面线程要做的事情

91、{

92、这个。富文本框1。text=s;

93、}

94、公共字符串RichTextBox1Text

95、{

96、设置

97、{

98、这个。富文本框1。invoke(新的RefleshUI(线程),值);

99、}

100、}

101、}

102、}

103、编译代码,生成解决方案。编译成功后,按F5执行。在生成目录下创建一个文本文件(文本文件)文件,并修改其内容后保存,会发现richTextBox1中的内容发生了同样的变化。

本文【filesystemwatcher不触发(filesystemwatcher)】到此讲解完毕了,希望对大家有帮助。