Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Delphi中实现变更日志_Delphi_Filesystems_Delphi Xe2_Ntfs_Ntfs Mft - Fatal编程技术网

在Delphi中实现变更日志

在Delphi中实现变更日志,delphi,filesystems,delphi-xe2,ntfs,ntfs-mft,Delphi,Filesystems,Delphi Xe2,Ntfs,Ntfs Mft,我试图使用而不是ReadDirectoryChangesW来跟踪delphi XE2应用程序中的更改(至于原因:) 我在delphi/pascal中能找到的最接近的是一个名为的东西,它包含两个pascal单位:和 上面的代码处理MFT(实际上非常好),但是没有任何变化 我还发现,它似乎做了我想做的,只是在C中# 我的问题是:有人知道与变更日志交互和/或查询的Delphi XE2代码(或如何转换C代码) 正如我所说,我的目标是替换ReadDirectoryChangesW,因此我最终需要与更改日志

我试图使用而不是
ReadDirectoryChangesW
来跟踪delphi XE2应用程序中的更改(至于原因:)

我在delphi/pascal中能找到的最接近的是一个名为的东西,它包含两个pascal单位:和

上面的代码处理MFT(实际上非常好),但是没有任何变化

我还发现,它似乎做了我想做的,只是在C中#

我的问题是:有人知道与变更日志交互和/或查询的Delphi XE2代码(或如何转换C代码)


正如我所说,我的目标是替换
ReadDirectoryChangesW
,因此我最终需要与更改日志交互,以便在文件系统发生更改时得到通知,您确定这就是您想要做的吗?它仅适用于NTFS文件系统。我不确定它是否适用于网络卷。应用程序需要管理员权限才能访问卷范围内的更改日志。
uMFT.pas
具有
QueryUSNJournal()
enummtentries()
用于访问更改日志记录的功能。你真的试过用它们了吗?MFT命名是因为主文件表使用与更改日志相同的记录格式,所以相同的代码可以用来枚举两个表中的记录。您查看了这些文章:坦白地说,如果您想做这样的低级内容,您需要足够熟练地从C++代码到Delphi端口。我认为这应该很容易。@DavidHeffernan:(在这里大声思考…)既然变更日志没有通知机制(或者看起来是这样),我可能仍然可以依靠
ReadDirectoryChangesW
捕获变更,然后使用变更日志可靠地获取修改日期。这将修复不可靠的文件修改时间。这有意义吗?是的,这很有意义。