查看: 2171|回复: 5

[已经解决] 写了个删除一个文件夹下指定扩展名文件的脚本,为何没用

[复制链接]
梦石
0
星屑
1902
在线时间
959 小时
注册时间
2012-7-5
回帖
225
发表于 2014-4-6 21:13:33 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
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:}
tan(pi/2)

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-4-6 21:19:35 | 显示全部楼层
我没记错的话,字符串是没有方法“extname"的,而这个错误被rescue掉了
获取文件名的扩展名部分好像是 File.extname(string)

评分

参与人数 1星屑 +120 收起 理由
Sion + 120 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
1902
在线时间
959 小时
注册时间
2012-7-5
回帖
225
 楼主| 发表于 2014-4-6 21:24:55 | 显示全部楼层
3q
大大好厉害
解决了,
把 x.to_s.extname 改成 File.extname(x.to_s)就好了

点评

貌似.to_s是多余的?好像本来就是字符串的说  发表于 2014-4-6 21:45
tan(pi/2)
回复

使用道具 举报

梦石
0
星屑
1902
在线时间
959 小时
注册时间
2012-7-5
回帖
225
 楼主| 发表于 2014-4-6 21:55:05 | 显示全部楼层
拿这写个垃圾清理软件什么的
tan(pi/2)
回复

使用道具 举报

梦石
0
星屑
1902
在线时间
959 小时
注册时间
2012-7-5
回帖
225
 楼主| 发表于 2014-4-7 07:40:47 | 显示全部楼层
要是指定目录不存在,怎么办, rescue怎么没用?
tan(pi/2)
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-4-7 09:25:07 | 显示全部楼层
浮云半仙 发表于 2014-4-7 07:40
要是指定目录不存在,怎么办, rescue怎么没用?


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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部