2009-03-04 28 views
21

Tôi muốn xóa một thư mục có thể chứa hoặc không chứa các tệp hoặc các thư mục khác. Nhìn vào tài liệu Ruby tôi tìm thấy Dir.rmdir nhưng nó sẽ không xóa thư mục không rỗng. Có phương pháp tiện lợi nào để tôi làm việc này không? Hay tôi cần phải viết một phương pháp đệ quy để kiểm tra mọi thứ bên dưới thư mục?Cách an toàn và dễ dàng để xóa một thư mục trong Ruby là gì?

Trả lời

47
require 'fileutils' 

FileUtils.rm_rf(dir) 
+3

Xin lưu ý rằng tài liệu chứa cảnh báo về điều này: bạn có thể phơi bày lỗ hổng bảo mật nếu bạn không vượt qua: bảo mật dưới dạng tùy chọn để rm_rf. – BKewl

+0

@BKewl Tham khảo về điều đó? – 0112

+2

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

-1

Cách lười nhất là:

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

Một tinh khiết của Ruby cách:

đòi hỏi

FileUtils.rm_rf 'FileUtils' ("/ thư mục/to/go")

Nếu bạn cần an toàn chủ đề: (cảnh báo, thay đổi thư mục làm việc)

FileUtils.rm_rf ("thư mục/to/go",: secure => true)

Các vấn đề liên quan