【问题标题】:FileSystemWatcher, Strange ResponseFileSystemWatcher,奇怪的反应
【发布时间】:2009-09-24 03:26:41
【问题描述】:

我创建了一个 FileSystemWatcher(作为 Windows 服务)来监视被拖放到目录中的插件(作为 ZIP 文件),因此我可以自动解压缩它们,设置一些注册表项,并将它们安装到我的应用程序中。这很好用。

我还有 FileSystemWatcher 来查看 ZIP 文件何时被删除,因此我可以删除安装、删除注册表项等。这也可以正常工作...除了一个问题。

当我执行删除操作时,该文件被完全删除,但看起来像 另一个 ZIP 文件已被添加,但它有一个非常奇怪的名称。另外,注册表中的内容和我刚刚删除的文件是一样的。这是一个例子:

Install
-------
File: Example.zip
Extracts to: C:\Plugins\Example\*.*
Registry Key: HKLM\Software\MySoftware\Plugins\Example\[keys]

Delete
------
File: Example.zip
Directory Deletes
Registry Deletes
Creation of Folder: C:\Plugins\ER\S-1-52359402-2823975235\202\*.* where the files are the same as Example.zip's files.
Registry Key: HKLM\Software\MySoftware\Plugins\ER\S-1-52359402-2823975235\202\[keys] where the keys are the same as Example.zip's.

最后两个步骤不应该发生。我真的很困惑这里发生了什么。这是病毒扫描程序吗?任何帮助将不胜感激。

更新: 根据 Jon Skeet 的回复,似乎是回收站导致了这个问题(我正在查看子目录)。有什么方法可以始终忽略这些目录(隐藏?回收站?别的什么?)。

【问题讨论】:

  • 你是如何删除文件的?你把它移到回收站了吗?可能是此操作将文件(临时)移动到这样的文件夹。
  • 顺便说一句,不要忘记定期轮询文件夹以防错过某些事件(有关详细信息,请参阅msdn.microsoft.com/en-us/library/…)。
  • @divo - 是的,它是回收站。我只是通过 Windows 资源管理器删除它。关于如何处理的任何建议?

标签: c# windows


【解决方案1】:

也许是回收站?你是如何删除文件的?如果您从资源管理器手动执行此操作,“正常”突出显示和删除与 Shift+Delete 的“立即删除”行为有什么区别吗?

【讨论】:

  • 这似乎是问题所在。有关如何管理此问题的任何建议? (更新问题以匹配查找结果。)
  • 您的插件架构是否要求您查看所有子目录?您可以只监视顶级文件夹以避免该问题。
  • 嗯,根据当前的设计,它确实需要我查看所有子目录。我想我可以改变设计,但如果我的用户可以通过目录组织他们的插件(这反映在工具中),这对我的用户来说更有意义。
  • 您还可以检查文件/文件夹的属性以排除所有回收站文件夹。
  • @divo - 是的,我要观察路径并寻找回收站这个词。如果我看到了,我知道可以忽略它。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
  • 2011-10-01
  • 2011-07-15
  • 2013-04-04
  • 2019-08-12
  • 1970-01-01
  • 2015-12-31
相关资源
最近更新 更多