使用FileSystemWatcher从Photoshop跟踪文件更改

本文关键字:文件 跟踪 Photoshop FileSystemWatcher 使用 | 更新日期: 2023-09-27 18:29:57

我目前正在开发应用程序的一个组件,该组件监视特定目录中的文件,并将它们与这些文件的特殊元数据一起保存在数据库中。

我使用FileSystemWatcher来跟踪对这些文件/目录的添加、重命名、删除和更改。到目前为止,这一切都很好。但由于FileSystemWatcher无法跟踪移动,我使用哈希来跟踪文件。

现在,为了保持这一工作,我必须在文件更改后更新数据库中的哈希。但我的第一次测试就是失败的证明。Photoshop显然有一些保存文件的棘手方法。我总是捕捉到一个正在更改的"psXXXXX.tmp"文件,我用FileAttributes.Archive对其进行筛选。问题是:观察程序不会再次抛出真正更改的文件。由于我需要真正的文件名,而不是临时文件名,所以我无法更新数据库。

即使文件大小或写入时间发生变化,也不会发生任何事情。它被完全忽略了。当临时文件被创建(或者原始文件被重命名,我不知道)时,事件会上升一次,然后什么都没有发生。

有人能解释这种行为吗?有人知道如何避免这种情况吗?有什么变通办法或其他解决方案吗?

感谢

使用FileSystemWatcher从Photoshop跟踪文件更改

我在PS方面遇到了这个问题,我只需要添加:

watcher.Renamed += new RenamedEventHandler(OnChanged);

一切都很好。