如何使用 Ruby-Rails 删除文件夹的所有内容?

我有一个 public/cache文件夹,其中有文件和文件夹。如何使用 rake 任务完全清空该文件夹?

42321 次浏览

Ruby 在 FileUtils模块中具有 * nix rm -rf等价物,可用于删除文件和非空文件夹/目录:

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

保留目录本身并只删除其内容:

FileUtils.rm_rf(Dir.glob('dir/to/remove/*'))


FileUtils.rm_rf(Dir['dir/to/remove/*'])      # shorter version of above

您可以使用如下的反勾来运行任意的命令:

`rm -fr public/cache/*`

这可能比您想要的更依赖于平台,但是它打开了许多可能性。

答案已经很棒了。您可能还有兴趣知道 Rails 5有一个 rake 任务来完成这个内置的:

rake tmp:cache:clear # Clear cache files from tmp/