我在Linux上有一个文件索引数据库.目前我使用文件路径作为标识符.但是,如果文件被移动/重命名,其路径将被更改,我无法将我的DB记录与新文件匹配,并且必须删除/重新创建记录.更糟糕的是,如果移动/重命名目录,那么我必须删除/重新创建所有文件和嵌套目录的记录.
我想使用inode编号作为唯一文件标识符,但如果删除文件并创建另一个文件,则可以重用inode编号.
所以,我想知道我是否可以使用一对{inode,crtime}作为唯一的文件标识符.我希望在NTFS上的ext4和creation_time上使用i_crtime.在我的有限测试(使用ext4)inode和crtime确实在重命名或移动同一文件系统中的文件或目录时保持不变.
因此,问题在于是否存在文件的inode或crtime可能发生变化的情况.例如,fsck或碎片整理或分区大小调整改变inode或crtime或文件?
有趣的是 http://msdn.microsoft.com/en-us/library/aa363788%28VS.85%29.aspx 说:
那么,他们提到的那些案例是什么?
请注意,我研究了类似的问题:
但他们没有回答我的问题.