Ruby Ruby 重命名文件权限报错

dtldtt · 2017年08月03日 · 最后由 dtldtt 回复于 2017年08月04日 · 1129 次阅读

今天打算批量重命名一个目录下的所有文件 代码如下:

Dir.foreach ("生命") do |filename|
    if newfile=filename.sub(/\[.*\]\./,"")
        #File.chmod(0755, filename) rescue nil
        File.rename(filename,newfile)
        #puts File.writable?(filename)
    end
end

结果报错:Permission denied,截图如下

大家有遇到过这种情况吗,求大神解决!!

1、改文件名须有该文件所在目录的 w 权限

2、从你报错信息看,连。和..都读出来了

3、理论上 filename,newfile 需带上目录名"生命"

多谢,我一直没注意到那个。和..,还有一个问题就是路径有中文好像出现编码问题,我直接都改成英文了,现在解决了,谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号