【问题标题】:Detect whenever a specific file type gets opened [duplicate]检测何时打开特定文件类型[重复]
【发布时间】:2015-11-03 13:16:10
【问题描述】:

是否有一种易于实现的方法来检测用户何时打开文件?(双击、右键单击等)

我读过this,但我认为它只会轮询文件的lastaccess 时间。我试图实现的主要目标是每当用户打开文件时,代码都会获取文件名、位置、大小和所有这些好东西。

我想我不能以任何其他方式问这个问题。我不知道从哪里开始。

【问题讨论】:

  • 您需要一个文件系统过滤驱动程序来可靠地实现这一点。
  • 感谢@CodeCaster 的链接。

标签: c# file detection


【解决方案1】:

实际上,链接问题中的FileSystemWatcher 是正确的方法。它不会轮询任何东西,它会侦听操作系统事件以进行文件访问。如果没有操作系统事件,您将无法对其做出反应。

【讨论】:

  • OpenFile() 不通过 FileSystemWatcher 传播。当用户打开文件而不是写入文件时,OP 正在寻找一个事件,如果没有轮询,后者仍然很难检测到。
  • 就像我说的:如果没有操作系统事件,您无法对其做出反应。你到底会投票什么呢?
  • 我将尝试从头开始解释:链接到的问题是关于写入到文件,FileSystemWatcher 无法可靠地检测到。因此,如果您不想使用文件系统过滤器驱动程序来检测 写入,则必须轮询,例如目录中文件的 LastModified 属性。但这一切都无关紧要。此处的 OP 想要检测何时打开文件以进行 阅读。这不是 FileSystemWatcher 提供的。反正不是我的反对票。
  • 我同意。我相信我们正在谈论彼此。我的观点是:FileSystemWatcher 是 .NET API 提供的用于侦听文件访问的最佳工具。对于执行 OP 建议的操作,.NET API 无济于事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 2014-11-06
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
  • 2019-08-11
  • 2023-03-27
相关资源
最近更新 更多