it-swarm-pt.tech

Como excluir todo o conteúdo de uma pasta com Ruby-Rails?

Eu tenho um public/cache pasta que possui arquivos e pastas. Como posso esvaziar completamente essa pasta usando uma tarefa rake?

60
Jacob

Ruby tem o * nix rm -rf equivalente no módulo FileUtils que você pode usar para excluir arquivos e pastas/diretórios não vazios:

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

Para manter o próprio diretório e remover apenas seu conteúdo:

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

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

Você pode executar comandos arbitrários usando aspas simples inclinadas (ao lado do til) da seguinte maneira:

`rm -fr public/cache/*`

Isso pode ser mais dependente da plataforma do que você deseja, mas abre muitas possibilidades.

2
James Watkins

Ótimas respostas aqui já. Você também pode estar interessado em saber que o Rails 5 tem uma tarefa de rake para fazer isso embutido:

rake tmp:cache:clear # Clear cache files from tmp/
0
Gabe Kopley