Project1

标题: 写了个删除一个文件夹下指定扩展名文件的脚本,为何没用 [打印本页]

作者: 浮云半仙    时间: 2014-4-6 21:13
标题: 写了个删除一个文件夹下指定扩展名文件的脚本,为何没用
Dir.chdir("/mnt/sdcard/TEST")
Dir.foreach("/mnt/sdcard/TEST") do |x|
begin
File.delete(x.to_s) if x.to_s.extname == ".txt"
rescue
next
end
end
手机上写的jruby
在这文件夹里有4个txt文件
每次运行结果都是 nil 那4个txt文件一个都没少
好吧我承认是因为在别的地方问没人理我我才在这儿问的
求指点{:2_280:}
作者: taroxd    时间: 2014-4-6 21:19
我没记错的话,字符串是没有方法“extname"的,而这个错误被rescue掉了
获取文件名的扩展名部分好像是 File.extname(string)
作者: 浮云半仙    时间: 2014-4-6 21:24
3q
大大好厉害
解决了,
把 x.to_s.extname 改成 File.extname(x.to_s)就好了

作者: 浮云半仙    时间: 2014-4-6 21:55
拿这写个垃圾清理软件什么的
作者: 浮云半仙    时间: 2014-4-7 07:40
要是指定目录不存在,怎么办, rescue怎么没用?
作者: taroxd    时间: 2014-4-7 09:25
浮云半仙 发表于 2014-4-7 07:40
要是指定目录不存在,怎么办, rescue怎么没用?


rescue省略参数的话只能rescue StandardError啦

方法1: rescue SystemCallError (不推荐)
方法2:先用 Dir.exist? 检查一下嘛~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1