Synchronization 备份应用程序如何检测重命名?

Synchronization 备份应用程序如何检测重命名?,synchronization,move,rename,Synchronization,Move,Rename,我最近注意到SyncToy(由MS提供)可以检测重命名和移动的文件 他们是怎么做到的?这仅仅是一个基于文件属性(上次修改日期、创建日期和文件大小)的复杂猜测游戏吗?捕获文件重命名、删除和其他操作的一种方法是使用类(使用dotnet framework)。 如果开发应用程序(或服务),您可以监视文件系统更改并执行自定义操作(使用代码,这样您就可以执行任何需要的操作)。 您甚至可以设置哪个目录监视器以及是否需要子目录。 文件夹和文件的权限可能会出现问题,但这不是您问题的一部分:)但这要求您的应用程序

我最近注意到SyncToy(由MS提供)可以检测重命名和移动的文件


他们是怎么做到的?这仅仅是一个基于文件属性(上次修改日期、创建日期和文件大小)的复杂猜测游戏吗?

捕获文件重命名、删除和其他操作的一种方法是使用类(使用dotnet framework)。
如果开发应用程序(或服务),您可以监视文件系统更改并执行自定义操作(使用代码,这样您就可以执行任何需要的操作)。
您甚至可以设置哪个目录监视器以及是否需要子目录。

文件夹和文件的权限可能会出现问题,但这不是您问题的一部分:)

但这要求您的应用程序始终保持打开状态:/这就是我谈论服务的原因;)无论如何,是的,如果你使用这个类,你的应用程序必须一直运行。。。还有其他解决方案,但他们需要扫描系统(或根据设置扫描系统的一部分),并找到与以前保存的状态的差异。这样做可行吗?您如何区分重命名和删除+创建?@Clément:您是在谈论FileSystemWatcher类还是使用其他方法?有了FSW,您就有了
OnChanged
事件,告诉您更改的原因(更改、创建、删除)和
onrename
事件。使用不同的东西(离线)可以观看(例如)LastModifiedDate和/或CreationDate,但这还不够……我对FileSystemWatcher不感兴趣。SyncToy不使用服务,但它检测更改并重命名。我不知道他们是怎么做到的。