Ruby:将哈希拆分为文件夹名

Ruby:将哈希拆分为文件夹名,ruby,Ruby,如何利用 f6f6c3408e67bf6473d65de172f0e5da.jpg 文件名 文件夹的结构f6/f6/c3/40/8e/67/bf/64/73/d6/5d/e1/72/f0/e5/da.jpg为了避免文件系统过载,应该这样做: 'f6f6c3408e67bf6473d65de172f0e5da.jpg'.sub /(.*)(\..*)/ do filename, extension = $1, $2 filename.scan(/../).join('/')

如何利用

f6f6c3408e67bf6473d65de172f0e5da.jpg 
文件名

文件夹的结构
f6/f6/c3/40/8e/67/bf/64/73/d6/5d/e1/72/f0/e5/da.jpg
为了避免文件系统过载,应该这样做:

'f6f6c3408e67bf6473d65de172f0e5da.jpg'.sub /(.*)(\..*)/ do 
    filename, extension = $1, $2
    filename.scan(/../).join('/') + extension
end

你为什么不按照像
git
这样的系统做,只提取前两个字符来创建一个目录并将文件放入其中呢。为此创建这么多目录似乎毫无意义(也可能会影响性能),如果它适用于
git
等系统以避免文件系统效率低下,那么它也应该适用于您。当然,如果您遵循这种方法,实现也将非常简单

directory,filename = filename[0..1],filename[2..-1]

使用这些路径,您可以使更多的文件/系统过载。:)请记住任何潜在的性能问题。如果这篇文章很重要,可以考虑一些不涉及正则表达式和临时数组的其他解决方案。