【问题标题】:How to detect that file is about to be modified in c#?如何检测该文件即将在 c# 中被修改?
【发布时间】:2014-11-25 17:27:21
【问题描述】:

我的 .Net 应用程序监视指定目录中的文件。如果要修改任何文件,我需要备份该文件。

我的目标是避免备份目录中的所有文件。我只想备份将被修改的文件,它只是文件夹中所有文件的一小部分。

据我所知,.Net FileSystemWatcher 只能检测到该文件已被修改,因此我现在备份该文件为时已晚。

如何检测文件即将被修改的时刻,以便进行备份?

【问题讨论】:

  • 您需要编写一个文件系统级驱动程序来拦截对磁盘的请求并允许您事先做一些事情。
  • 读心术,也许吧? :)
  • @eddie_cat 不,这很有可能,但驱动程序确实是唯一的解决方案。
  • 也许现有的轮子可以-Volume Shadow Copy? (关于Wikipedia的总结)

标签: c# filesystems monitoring filesystemwatcher


【解决方案1】:

如果没有简单的方法来破解写入操作(我很确定没有,就像某些人评论的那样不编写驱动程序),您可以作弊并使用影子副本和文件系统观察程序的组合。从卷影副本开始,当文件系统观察程序检测到更改时,还原卷影副本,然后执行您打算执行的任何操作。

我知道这不是一个解决方案,只是一种解决方法,但你最终会得到相同的结果,即保存后具有原始版本的文件。

【讨论】:

  • 您刚刚描述了还原更改。 OP 希望保留原件,但允许更改。
  • 好的,所以我想念这个问题。而不是恢复影子副本。 ...备份影子副本?
  • 您的建议的真正问题是 OP 明确指出“我的目标是避免备份目录中的所有文件。我只想备份将被修改的文件”。你的建议是完全相反的......一直支持他们。
猜你喜欢
  • 1970-01-01
  • 2012-03-18
  • 2011-11-15
  • 1970-01-01
  • 2012-04-24
  • 1970-01-01
  • 1970-01-01
  • 2021-04-11
  • 1970-01-01
相关资源
最近更新 更多