NTFS Change Journal - 文件更改跟踪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NTFS Change Journal - 文件更改跟踪相关的知识,希望对你有一定的参考价值。

我正在开发一个更改跟踪软件来监控特定卷的文件。我尝试过FileSystemWatcher(.NET)和AlternateDataStreams但它们都有一些限制(即变更跟踪软件必须全天候运行,备用数据流不适用于ReadOnly文件等)。

经过一些调查,我认为我可以直接阅读NTFS变更日志。如果在同一卷上移动/重命名文件等,则此方法很有用。为了识别我正在使用文件参考号的文件。

但是,如果将文件移动到另一个卷,则文件引用号自然会更改。

我的问题:即使文件被移动到另一个卷,是否有一个唯一的ID(GUID或其他)不会改变?

答案

嗯...可以有文件GUID,但默认情况下不存在。

如果您具有必要的权限,则可以遍历文件并分配将在NTFS卷移动中保留的GUID。您声明的目标正是该功能存在的原因。它使用了一个名为DeviceIOControl的有点笨拙的API ...它用于无数目的......但其中一个控制代码是FSCTL_CREATE_OR_GET_OBJECT_ID。查看here了解详情。

如果尚未分配GUID,它只会创建GUID ...这就是您希望它工作的方式。当然,如果文件移动到非NTFS卷,你仍然运气不好。

以上是关于NTFS Change Journal - 文件更改跟踪的主要内容,如果未能解决你的问题,请参考以下文章

php创建sqlite数据库后,增加内容会生成journal文件

NTFS 文件系统的 USN 日志可以大于它声明的大小吗?

Linux文件系统

NTFS文件系统误删除数据的恢复教程

什么是NTFS?

十月个人考核:NTFS文件系统的优点有哪些