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

时间:2012-04-16 11:33:05

标签: ruby

如何从

制作
f6f6c3408e67bf6473d65de172f0e5da.jpg 

文件名

用于转义文件系统重载的文件夹f6/f6/c3/40/8e/67/bf/64/73/d6/5d/e1/72/f0/e5/da.jpg的结构

2 个答案:

答案 0 :(得分:1)

这应该这样做:

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

答案 1 :(得分:1)

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

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