Jam*_*ine 5 ruby directory filesort
我必须在ruby中使用以下代码:
<%
files = Dir.glob('/**/*')
files.each do |file|
puts file
end
%>
Run Code Online (Sandbox Code Playgroud)
它输出(例如):
/dirA/file1.txt
/dirA/file2.txt
/dirB/file1.txt
/file1.txt
/file2.txt
/subdirA/file1.txt
Run Code Online (Sandbox Code Playgroud)
我希望它像这样输出:
/file1.txt
/file2.txt
/dirA/file1.txt
/dirA/file2.txt
/dirB/file1.txt
/subdirA/file1.txt
Run Code Online (Sandbox Code Playgroud)
基本上,我想在目录之前显示文件.我可以使用排序命令吗?
我相信这对你有用:
files = Dir.glob('**/*')
files = files.map { |file| [file.count("/"), file] }
files = files.sort.map { |file| file[1] }
files.each do |file|
puts file
end
Run Code Online (Sandbox Code Playgroud)
更改"/"到?/,如果你上红宝石1.8.
或者,作为一个单行::)
Dir.glob('**/*').map { |file| [file.count("/"), file] }.sort.map { |file| file[1] }.each { |file| puts file }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3718 次 |
| 最近记录: |