我在网上找到的文章中,NTFS上的文件似乎有两种形式的唯一标识符:
使用Windows API GetFileInformationByHandle(),我们可以访问结构BY_HANDLE_FILE_INFORMATION,其中包含卷序列号和低/高文件索引。 http://msdn.microsoft.com/en-us/library/aa363788(VS.85).aspx
$ Object_ID - 文章http://blogs.technet.com/b/askcore/archive/2010/08/25/ntfs-file-attributes.aspx声明:
$ OBJECT_ID - 这是一个包含ID的属性。此ID由分布式链接跟踪服务使用。可以在快捷方式中找到如何使用它的示例。在桌面上创建指向文件的快捷方式。然后移动该文件。快捷方式仍然可以正常运行,因为除了路径和文件名之外,它还使用了一种方法来处理源文件。
并非所有文件都具有$ OBJECT_ID属性。实际上,直到分配实际ID才会将属性添加到文件中。
我试图了解何时设置了对象ID。以下是几个问题:
何时分配对象ID?根据上面的文章,在一种情况下,当创建文件的快捷方式时会出现这种情况。
当文件引用另一个文件时,是否自动分配对象ID,例如一个Word文档,它嵌入了Visio图表?
只有在启用/运行分布式链接跟踪时才会分配对象ID,或者无论分布式链接跟踪如何,它们是否都存在?
如果我想跟踪文件的唯一标识符,那么在组合卷序列号和文件索引(低/高)上使用对象ID(64字节)是否有任何好处,是12个字节的组合。
谢谢,Elan
答案 0 :(得分:4)
这一切都取决于你想要做什么。 :)
文件索引号与documentation says一样,实际上只是NTFS中文件的一个很好的标识符(而不是FAT),但即使这样,如果文件被删除并重新创建它也会改变(想想备份) /恢复),但如果你想要区分那些,你可能会认为这是奖金。
最好不要担心关于对象ID的链接跟踪服务,而是将它们视为create/set/read,尽管只能在NTFS中使用。{3}}。
对象ID有一些开销,而文件ID则没有。对于大多数应用程序,我可能最终会选择文件引用号(即使它们可能很脆弱)。
答案 1 :(得分:2)
想想我会把这个放在像我这样研究FRN
和OBJECTID
的其他人这里。这些ID对于单个文件系统上的目录(文件还原除外)可能是稳定的,但只要保存并关闭具有许多不同应用程序的文件,FRN和ObjectID就会更改。
例如,如果您打开FRN#:1000的Word文件并且已分配OBJECTID:8675309,则在进行更改时,保存并关闭它。 FRN#将是一个新号码,并且没有ObjectID。
在下面我做了一个简单的打开,对段落中的文本进行了更改,保存并关闭了一个word文件。在我的程序中有超过52个事件,我已经过滤掉了所涉及的所有~WRL*tmp
个文件等。但即使在具有相同文件的同一文件系统上,FRN也不是一件容易的事情。我目前没有显示ObjectID,但是当你分配一个,打开这个文件并保存它时,请相信我,它本质上是一个新文件。
样本USN日记输出,第一个数字是文件引用号,第二个是父文件引用号(目录的FRN是稳定的)
viewchanges
562949953421470 | 2251799813685402 | FILE | 7/10/2014 8:12:13 PM | \MyDemo\WordFileDemo.docx
OBJECT ID CHANGE
----------------------------------------------------------------------------------------------------
562949953421470 | 2251799813685402 | FILE | 7/10/2014 8:12:13 PM | \MyDemo\WordFileDemo.docx
OBJECT ID CHANGE
CLOSE
----------------------------------------------------------------------------------------------------
562949953421470 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
RENAME OLD NAME
----------------------------------------------------------------------------------------------------
1125899906842780 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
RENAME NEW NAME
BASIC INFO CHANGE
OBJECT ID CHANGE
----------------------------------------------------------------------------------------------------
1125899906842780 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
RENAME NEW NAME
BASIC INFO CHANGE
OBJECT ID CHANGE
CLOSE
----------------------------------------------------------------------------------------------------
1125899906842780 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
----------------------------------------------------------------------------------------------------
1125899906842780 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
CLOSE
----------------------------------------------------------------------------------------------------
1125899906842780 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
OBJECT ID CHANGE
----------------------------------------------------------------------------------------------------
1125899906842780 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
OBJECT ID CHANGE
CLOSE
----------------------------------------------------------------------------------------------------
1125899906842780 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
RENAME OLD NAME
----------------------------------------------------------------------------------------------------
1125899906842781 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
RENAME NEW NAME
BASIC INFO CHANGE
OBJECT ID CHANGE
----------------------------------------------------------------------------------------------------
1125899906842781 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
RENAME NEW NAME
BASIC INFO CHANGE
OBJECT ID CHANGE
CLOSE
----------------------------------------------------------------------------------------------------
1125899906842781 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
----------------------------------------------------------------------------------------------------
1125899906842781 | 2251799813685402 | FILE | 7/10/2014 8:12:19 PM | \MyDemo\WordFileDemo.docx
SECURITY CHANGE
CLOSE
----------------------------------------------------------------------------------------------------