How to delete all contents of a folder with Ruby-Rails?

前端 未结 3 1075
长发绾君心
长发绾君心 2021-02-02 05:09

I have a public/cache folder which has files and folders. How can I completely empty that folder using a rake task?

相关标签:
3条回答
  • 2021-02-02 05:36

    Great answers here already. You might also be interested to know that Rails 5 has a rake task to do this built-in:

    rake tmp:cache:clear # Clear cache files from tmp/
    
    0 讨论(0)
  • 2021-02-02 05:37

    You can run arbitrary commands using backticks like so:

    `rm -fr public/cache/*`
    

    This may be more platform-dependent than what you want, but it opens up a lot of possibilities.

    0 讨论(0)
  • 2021-02-02 05:49

    Ruby has the *nix rm -rf equivalent in the FileUtils module that you can use to delete both files and non-empty folders/directories:

    FileUtils.rm_rf('dir/to/remove')
    

    To keep the directory itself and only remove its contents:

    FileUtils.rm_rf(Dir.glob('dir/to/remove/*'))
    
    FileUtils.rm_rf(Dir['dir/to/remove/*'])      # shorter version of above
    
    0 讨论(0)
提交回复
热议问题