-4

目标是创建随机路径来存储文件,以便我可以使用随机路径存储大量文件。

4

2 回答 2

3

我真的不确定你为什么要这样做。大多数(所有?)系统的容量是如此之高,以至于考虑它是不切实际的。如果你必须考虑它,可能还有另一个问题。例如,Mac OS X每个文件夹可以有 21 亿个文件。当然,在某些时候查看文件列表可能会有些问题。

如果你想要随机值,你可以选择crypto/randmath/rand包。该math/rand软件包可能更适合这种情况,因为它crypto/rand依赖于系统生成的熵。math/rand基于种子算法。缺点是你必须检查碰撞。发生冲突的概率实际上取决于您使用了多少个字符。您拥有的角色越少,碰撞的可能性就越大。

time您可以做的一件事是以某种频率(天、月)为使用包的文件夹名称使用时间戳。我会尽量避免随机文件名,因为这会使管理成为一场噩梦。如果有冲突,您可以随时为文件名添加后缀。

当然,我假设您将存储潜在的大型二进制文件,例如图像。如果您要存储一些小文件(文本文件),您可能需要考虑使用数据库。

于 2013-08-06T23:33:56.710 回答
0

如果您希望路径是“随机的”并且不与任何其他路径冲突,请使用SHA-1对文件名进行哈希处理。发生碰撞的几率非常小。如果您要求路径很短,只需获取哈希的子字符串,尽管这显然会显着增加路径冲突的机会(这对您来说可能是也可能不是问题)。

于 2013-08-06T23:20:42.443 回答