Ruby Ruby 重命名文件权限报错

dtldtt · August 03, 2017 · Last by dtldtt replied at August 04, 2017 · 1123 hits

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

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 需带上目录名"生命"

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

You need to Sign in before reply, if you don't have an account, please Sign up first.