2009-03-04 10 views
21

me gustaría eliminar un directorio que pueden o no contener archivos u otros directorios. Buscando en la documentación de Ruby encontré Dir.rmdir pero no va a eliminar dir que no esté vacía. ¿Hay algún método de conveniencia que nos permita hacer esto? ¿O debo escribir un método recursivo para examinar todo lo que está debajo del directorio?Qué manera segura y fácil de eliminar un directorio en Ruby?

Respuesta

47
require 'fileutils' 

FileUtils.rm_rf(dir) 
+3

Tenga en cuenta que los documentos contienen una advertencia al respecto: puede exponer una vulnerabilidad si no pasa: seguro como opción para rm_rf. – BKewl

+0

Referencia @BKewl al respecto? – 0112

+2

@ alex0112: Ver http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-rm_rf y http://ruby-doc.org/stdlib-1.9 .3/libdoc/fileutils/rdoc/FileUtils.html # method-c-rm_r – BKewl

-1

La forma más perezosa es:

def delete_all(path) 
    `rm -rf "#{path}"` 
end 
3

Una forma pura Ruby:

requieren '' fileutils

FileUtils.rm_rf ("/ directorio/a/go")

Si necesita hilo de seguridad: (advertencia, cambios directorio de trabajo)

FileUtils.rm_rf ("directorio/a/ir",: seguro => verdadero)

Cuestiones relacionadas