文件和文件夹不存在的时候,FileSystemWatcher 监听不到文件的改变?如果递归地监听就可以了
当你需要监视文件或文件夹的改变的时候,使用 FileSystemWatcher
便可以完成。不过,FileSystemWatcher
对文件夹的监视要求文件夹必须存在,否则会产生错误“无效路径”。
那么,如果文件或文件夹不存在的时候可以怎么监视文件的改变呢?更麻烦的是如果顶层很多级文件夹都不存在,怎么能监视呢?本文将告诉你方法。
本文的代码适用于 .NET Framework 和 .NET Core,同时不需要任何第三方依赖。
本文内容
- 方法一:创建文件夹(在逃避问题,但也不失为一种解决思路)
- 方法二:递归监视文件夹
- 代码实现
- 完整的代码和使用方法
- 此方法的特点,优势和不足
- 附所有源码
- 参考资料
FileWatcher that helps you to watch a single file change even if the file or it’s owner folders does not exists.。
使用方法与 FileSystemWatcher
类似,但是更简单:
_watcher = new FileWatcher(@"C:\Users\walterlv\Desktop\demo.txt");
_watcher.Changed += OnFileChanged;
_watcher.Watch();
private void OnFileChanged(object sender, EventArgs e)
{
// 最纯粹的文件改变事件,仅在文件的内容真的改变的时候触发。
}
FileWatcher that helps you to watch a single file change even if the file or it’s owner folers does not exists.。
FileSystemWatcher Class (System.IO) - Microsoft Docs
我的博客会首发于 https://walterlv.com/,而 CSDN 和博客园仅从其中摘选发布,而且一旦发布了就不再更新。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://blog.csdn.net/wpwalter),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。