我正在研究获取目录(文件夹)并派生某种形式的唯一数字标识符的方法。我研究了“字符串到哈希”方法,但是,鸽子洞原理意味着永远无法为每个字符串导出一个真正唯一的数字。
字符串到唯一哈希是不好的。
我最近一直在研究实现目标的其他方法,因此有以下问题要问:
目录时间戳 - 它们有多“独特”?此处 描述的“stat”报告的时间戳的分辨率是多少(第二篇文章)?如果分辨率足够小,是否可以在 Linux 系统上让多个文件夹共享完全相同的时间戳?
如果有人想分享其他方法/技术,我很乐意倾听:)
编辑 1澄清我的用例以回应迄今为止发布的答案:我在 Android 平台上工作,所以文件系统没有链接到任何其他(当然除了可移动媒体,如 Micro SD 卡)。
我将每个路径插入数据库,但在查询表时尝试避免字符串比较。使用地图/哈希图在这里不是一个选项。是的,路径本身是唯一的,但理想情况下,我需要一个可用于查询表的数字标识符,而不是路径本身。每个路径的标识符也必须是唯一的。我已经尝试过 std::collate 但发现哈希中有很多碰撞(20, 000 条路径的数据集会产生大约 100 次碰撞)。更令人惊讶的是,每次运行我的应用程序时,哈希值似乎都大不相同。我想知道它是否以某种方式播种?
非常感谢,P