FileSystemWatcher Changed 事件引发两次

2023-12-07

我有一个应用程序,我正在寻找一个文本文件,如果对该文件进行了任何更改,我正在使用OnChanged事件处理程序来处理事件。我正在使用NotifyFilters.LastWriteTime但该事件仍然被解雇两次。这是代码。

public void Initialize()
{
   FileSystemWatcher _fileWatcher = new FileSystemWatcher();
  _fileWatcher.Path = "C:\\Folder";
  _fileWatcher.NotifyFilter = NotifyFilters.LastWrite;
  _fileWatcher.Filter = "Version.txt";
  _fileWatcher.Changed += new FileSystemEventHandler(OnChanged);
  _fileWatcher.EnableRaisingEvents = true;
}

private void OnChanged(object source, FileSystemEventArgs e)
{
   .......
}

就我而言OnChanged当我更改文本文件时被调用两次version.txt并保存它。


恐怕这是一个众所周知的错误/功能FileSystemWatcher班级。这是来自该类的文档:

您可能会注意到,在某些情况下,单个创建事件会生成多个由组件处理的 Created 事件。例如,如果使用 FileSystemWatcher 组件监视目录中新文件的创建,然后使用记事本创建文件来测试它,则即使只创建了一个文件,您也可能会看到生成了两个 Created 事件。这是因为记事本在写入过程中执行多个文件系统操作。记事本批量写入磁盘,创建文件内容,然后创建文件属性。其他应用程序可以以相同的方式执行。由于 FileSystemWatcher 监视操作系统活动,因此将拾取这些应用程序触发的所有事件。

现在这段文字是关于Created事件,但同样的事情也适用于其他文件事件。在某些应用程序中,您可能可以通过使用NotifyFilter属性,但我的经验表明,有时您还必须进行一些手动重复过滤(黑客)。

不久前,我在一个页面上添加了一些书签文件系统观察器提示。您可能想检查一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FileSystemWatcher Changed 事件引发两次 的相关文章

  • 如何重写实体数据模型创建的对象上的 Equals?

    我创建了一个实体数据模型 它从 SQLite 数据库中提取记录 其中一个表是 People 我想重写 person Equals 方法 但我不确定去哪里进行这样的更改 因为 Person 对象是自动生成的 我什至看不到该 autogen 代
  • 为什么更新外键后引用约束会不一致?

    抱歉 这个模糊的标题很难用一句话来描述 我有 2 个实体User and UserAddress 其中 User 有 2 个外键DefaultInvoiceAddressId and DefaultDeliveryAddressId和 Us
  • 您使用什么工具和技术来查找死代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您使用哪些工具和技术来查找 NET 中的死代码 过去 我用 Obsolete 属性修饰方法 传递 tr
  • OWIN AuthenticationOptions 在 mvc5 应用程序中运行时更新

    Hi 情况如下 我在 iis 7 上有一个带有 Identity 2 的 MVC 5 应用程序 该应用程序为多个网站提供服务 主机名是某些网站的关键 网站 另一个网站 等等 我决定在我的所有网站上使用谷歌外部登录 每个网站都应该是带有个人
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 使用索引避免迭代器失效,维护干净的接口

    我创建了一个MemoryManager
  • 运行时两个注册之间的简单注入器基于动态上下文的注入

    我有一个使用 Simple Injector 进行命令处理程序注册的中介应用程序 并且注入和处理程序均已设置并完美运行 class DoWashingCommandHandler IRequestHandler
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • 错误 C2065:'cout':未声明的标识符

    我正在处理我的编程作业的 驱动程序 部分 但我不断收到这个荒谬的错误 错误 C2065 cout 未声明的标识符 我什至尝试过使用std cout但我收到另一个错误 IntelliSense 命名空间 std 没有成员 cout 当我宣布u
  • 在 Windows 服务中使用 OleDb 从 Excel 读取数据?

    免责声明 我知道这是一种不好的做事方式 这是我们与客户的唯一选择 Problem 我们需要每隔 x 时间从 Excel 文件读取数据 数据通过第三方 Excel 插件不断变化 应用程序的环境是 Windows XP SP1 和 Net 2
  • Excel 2007 中的数值 - 底层 xml 文件中的表示与存储

    这个问题与 NET和OpenXml有关 我已经阅读了以下文章 它有很好的解释 但没有回答我的问题 Excel 2007 中数值的可视化与底层 xml 文件不一致 https stackoverflow com questions 58594
  • OpenMP 循环数组访问中的错误共享

    我想利用 OpenMP 来并行执行我的任务 我需要将数组的所有元素减去相同的数量并将结果写入另一个向量中 两个数组都是动态分配的malloc第一个填充了文件中的值 每个元素都有类型uint64 t pragma omp parallel f
  • 实体框架中的导航属性是什么

    我是实体框架的新手 当Visual Studio创建模型图时我们主要可以看到Entities Propertie和Navigation Properties这两个东西 那么这些Navigation Properties是什么 如何使用它们
  • 在 C# 中为 ListBox 分配数据源时,如何从 ListBox 中删除所选项目?

    在 C 中为 ListBox 分配数据源时 如何从 ListBox 中删除所选项目 尝试删除时出现错误 设置 DataSource 属性后 无法修改项目集合 但是当我尝试从数据源 数据表 中删除项目时 它会抛出错误 因为 数据行不在当前行集
  • PC 上 XNA 中的信箱和缩放

    有没有一种方法可以让我基本上以 1080p 或 720p 作为默认分辨率来开发 XNA 游戏 然后根据设置的分辨率将游戏中的所有内容缩放到适当的大小 而不必在每个 Sprite 中设置缩放因子Draw 方法 我的想法是 我可以基于 1080
  • 更快的 WinSock sendto()

    我使用的是 Windows Server 2008 我的程序是用 C 编写的 我在 while true 循环中使用 WinSock2 和 sendto 来发送数据包 代码如下 while true if c snd gt max c sn
  • 64 位随机生成器种子

    我目前正在运行一个具有 8 个以上管道 线程 的多线程模拟应用程序 这些管道运行非常复杂的代码 该代码取决于种子生成的随机序列 然后该序列被归结为单个 0 1 我希望在将种子从主线程传递到处理管道后 这种 随机处理 具有 100 的确定性
  • 如何以一对一/零关系更新员工和身份用户

    我正在尝试更新员工记录 也想更新身份用户 如果我先单独更新身份用户 例如 UserManager Update user Context Entry employee State System Data Entity EntityState
  • 从不同的线程访问对象

    我有一个服务器类 它基本上等待来自客户端的连接 在该类中 我创建了一个 NetworkStream 对象 以便能够从客户端接收字节 由于 NetworkStream Read 方法不是异步的 这意味着它将等到从客户端读取字节才能继续执行类似
  • Unity 错误“内部构建系统错误。后端退出,代码为 -1073740791。”摧毁/杀死了我的项目

    好吧 我可能在这里夸大了 但这是真的 当我开始打开它时 该项目由于错误 内部构建系统错误 后端退出 代码为 1073740791 而被破坏 应用程序 这个项目已经在Google Play上发布了 也许和设置有关 有人可以帮忙吗 完整错误 I

随机推荐

  • 用facet对y轴进行排序

    我有这个数据框 library dplyr dat data frame parent c J J F F group c A 4 C 3 A 4 D 5 value c 1 2 3 4 count c 4 3 4 5 dat gt arr
  • IE 8 支持 JSON.stringify() 吗?

    我需要使用 JSON stringify Chrome Safari 和 Firefox 应该支持 我认为IE8也支持JSON对象 我认为 IE7 和 6 没有 所以我这样做 所以 我认为只有 IE6 和 7 才会导入外部 JavaScri
  • Mercurial自动更新问题

    我们开始使用 Mercurial 进行源代码控制 我们已将 HGRC 配置文件配置为在推送到 中央 存储库后自动更新 对于某些 PC 我们会收到以下错误消息 warning changegroup hook exited with stat
  • Magento 自定义模块,致命错误:调用成员函数 setFormAction()

    当我点击这个 url 上的模块时http localhost xxx index php TradeEnquiry我收到这个错误 致命错误 调用成员函数 setFormAction 对非对象进行 C wamp www stockdispla
  • 从 CSV Import 更新现有的 Access 记录,原生于 MS Access 或 VB.NET

    我是我所在组织的票务系统的应用程序管理员 我们正在添加一个新客户 需要将他们的客户记录导入到我们的系统中 然而 我们被拒绝从直接数据库连接中简单地获取这些记录 我们仅限于进入他们的票务系统 并将现有记录导出到 CSV 文件 为了在我们的系统
  • 如何(准确)估计剩余下载时间?

    当然 您可以将剩余文件大小除以当前下载速度 但如果您的下载速度波动 而且它会波动 这不会产生非常好的结果 有什么更好的算法可以产生更平滑的倒计时 An 指数移动平均线非常适合这个 它提供了一种平滑平均值的方法 以便每次添加新样本时 旧样本对
  • Java 8 原始流到集合的映射方法

    这两种流创建方法之间是否存在显着差异 在性能或最佳实践方面 int arr2 1 2 3 4 5 6 Arrays stream arr2 map in gt in 2 mapToObj in gt new Integer in colle
  • “原始字符串正则表达式”到底是什么以及如何使用它?

    来自 python 文档regex 关于 特点 解决方案是使用 Python 的原始字符串表示法来表示正则 表达模式 反斜杠不会以任何特殊方式处理 前缀为的字符串文字 r So r n 是一个两个字符的字符串 含有 and n while
  • p:graphicImage 的替代方案,它可以显示来自 byte[] 的图像并控制浏览器缓存

    似乎有一个错误p graphicimage使用更新功能时 通过加载一张图像value myController myStreamedContent 有效 但是当改变时myController myStreamedContent随后更新p g
  • CUDA 可以解决许多“小型/中型”线性系统

    关于我尝试使用 CUDA 加速的问题的一些背景信息 我有大量小型 中型相同尺寸的线性系统需要独立求解 每个线性系统都是方形的 实数的 稠密的 可逆的和非对称的 这些实际上是矩阵系统 因此每个系统看起来都像 AX B 其中 A X 和 B 是
  • 浏览器后退按钮不会清除旧的后备 bean 值

    我们使用 JSF2 我们有一个带有表单字段的页面 其中命令按钮链接到支持 bean 当我们访问表单页面 输入值并提交时 支持 bean 会收到正确的值并将其带到下一页 如果我按浏览器中的后退按钮 它将转到带有表单的上一页 如果我在表单中输入
  • 如何实现通用的max函数?

    我知道这是因为模板函数的返回类型与第一个参数 T 的返回类型相同 如何修改此模板 使其在所有情况下都能正确运行 include
  • EventEmitter类的清晰概念

    代码写入子组件 mycomponent ts import Component OnInit EventEmitter Output from angular core Component selector app mycomponent
  • 将 shell 变量传递给 JSON 请求以进行curl?

    让我们看下面的例子 curl i X POST H Content Type application json d jsonrpc 2 0 method Player Open params item false http example
  • 排序多维数组javascript

    我想对双精度的多维数组进行排序 该数组如下所示 1 2 2 3 5 6 8 9 我想按 X 值对其进行排序 并保持 x y 值配对 我在网站上搜索了多维排序 发现了类似的帖子these其中排序函数修改如下 location sort fun
  • 如何检查字符串是否可以转换为浮点数?

    首先 我的背景是需要将浮点文字 字符串 转换为浮点 双精度值的编译器编写者 过去 15 年我没有做过任何浮点编程 所以我很确定这是一个完全愚蠢的新手问题 double res errno 0 res strtod const char li
  • 如何设置TabHost背景颜色

    我需要帮助 我发现在 TabHost 中更改背景颜色很困难 原图 我需要修改背景颜色 如下图所示 我也在我的代码和 XML 中尝试了很多东西 但都失败了 我的代码如下 TabHost tabHost getTabHost Tab 1 Tab
  • 如何在C++中设置文件权限(跨平台)?

    我正在使用 C ofstream写出一个文件 我想将权限设置为只能由用户访问 700 在unix中 我想我可以发出一个system chmod 700 file txt 但我需要这段代码也能在 Windows 上运行 我可以使用一些Wind
  • 如何使用Robot Framework处理提示框?

    我使用 Robot Framework 和 Selenium2Library 进行网站测试自动化 在其中一种情况下 会出现一个提示框 类似于警报的弹出窗口 但其中有一个输入字段 请参阅例子在这里 要求一些文字 问题是 Robot Frame
  • FileSystemWatcher Changed 事件引发两次

    我有一个应用程序 我正在寻找一个文本文件 如果对该文件进行了任何更改 我正在使用OnChanged事件处理程序来处理事件 我正在使用NotifyFilters LastWriteTime但该事件仍然被解雇两次 这是代码 public voi