ruby-on-rails - ruby - File.open 和重命名后权限被拒绝

标签 ruby-on-rails ruby permission-denied fileutils

我修改了一个文件,然后尝试重命名它并重命名他的目录。 但是我得到一个权限被拒绝的错误。

这是我的代码:

# 1) Modify the xml file

Xml_file = "Directory/foo.xml"

begin
    contents = File.new(Xml_file).read
    $document = REXML::Document.new(contents)
    $document.root.elements["label"].text = "some text"  

    File.open(Xml_file, "w") do |data|
    data<<$document
end

ensure
    $document = nil
end

# 2) Then rename the file and the directory

old_name = Xml_file
new_name = "Directory/new_name.xml"
File.rename(old_name, new_name) # OK, this works !

old_dir = "Directory"
new_dir = "New_Directory"
FileUtils.mv(old_dir, new_dir) # Crash, saying "permission denied"

最佳答案

正如 an example in the documentation 中明确指出的那样, 应该添加

force: true

FileUtils.mv 选项,以防目标目录不存在。

关于ruby-on-rails - ruby - File.open 和重命名后权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32648764/

相关文章:

ruby-on-rails - Heroku - therubyracer -v '0.11.0beta8' 失败

ruby-on-rails - 如何解析电子邮件或电话号码参数?

ruby - Vim 详细介绍了 Rails 的自动完成功能

php - sed 无法编辑 ssl.conf "Permission denied"

sql-server - SQL Server 2019跨数据库函数调用权限

android - 在系统签名的应用程序中使用自定义 RenderScript

ruby-on-rails - SASS 文件中未使用 Rails CDN URL

javascript - 数据目标不通过 jquery 附加

ruby-on-rails - Ruby on Rails 路径助手

c - 用匿名模块包装 Ruby