【问题标题】:Deleting folder containing file删除包含文件的文件夹
【发布时间】:2012-11-12 07:41:16
【问题描述】:

我想使用 send_file 从我的 Rails 控制器发送文件 file.txt,然后删除包含它的文件夹。

send_file("#{Rails.root}/public/folder/file.txt")
system("rm -rf #{Rails.root}/public/folder")

当我尝试这个时,file.txt 被正确发送,file.txt 被正确删除,但不知何故 folder 没有被删除。

我怎样才能让它删除folder

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    尝试使用原生ruby方法直接删除文件夹,而不是系统命令:

    require 'fileutils'
    FileUtils.remove_dir "#{Rails.root}/public/folder", true
    

    http://www.ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_dir

    【讨论】:

    • require 'FileUtils' 行,它给出了错误cannot load such file -- FileUtils
    • 在 Rails 中,尽量不要需要该文件。
    • 或者写成小写require 'fileutils'
    • 我创建了一个新的 rails 应用程序,公共目录中的一个文件夹,并在控制器中使用了此代码,它可以工作。这个文件夹有什么权限?是linux/mac还是windows系统?
    • @jeremiemv 服务器是linux系统。有趣的是,如果我删除 send_file 行,删除工作就很好了。
    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 2012-07-24
    • 2015-09-14
    • 1970-01-01
    • 2017-05-03
    • 2020-04-02
    • 2013-03-20
    • 2013-05-07
    相关资源
    最近更新 更多