windows 下的 tree 命令

中午做了个小demo,实现windows下的tree命令。


require "pathname"

class Test1

def initialize
end

def test_tree
dir = "D:/amp/MySQL Server 5.0"
puts dir
@lasts = []
trav_dirs dir,1
end

def trav_dirs(dir,deep)
if File.directory?(dir)
subs = Pathname.new(dir).children
0.upto(subs.size-1) { |i|
@lasts << (i == subs.size-1)
prt_node subs[i], deep
trav_dirs subs[i], deep + 1
@lasts.pop
}
end
end

def prt_node(dir,deep)
line = ''
0.upto(deep-2) { |i|
line = line + (@lasts[i] ? ' ' : '│') + ' '
}
puts line + (@lasts[-1] ? '└' : '├' ) + '─ ' + File.basename(dir)

end

end

Test1.new.test_tree


运行结果如下:

[img]http://dl.iteye.com/upload/attachment/287329/c8739be0-c1ff-32da-ae63-a938042f8611.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值