2009-03-04 9 views
21

मैं ऐसी निर्देशिका को हटाना चाहता हूं जिसमें फ़ाइलें या अन्य निर्देशिकाएं हो या न हो। रुबी डॉक्स में देखकर मुझे Dir.rmdir मिला लेकिन यह गैर-खाली डीआईआर को नहीं हटाएगा। क्या कोई सुविधा विधि है जो मुझे यह करने दो? या क्या मुझे निर्देशिका के नीचे सबकुछ जांचने के लिए एक पुनरावर्ती विधि लिखनी है?रुबी में एक डीआईआर को हटाने का एक सुरक्षित और आसान तरीका क्या है?

उत्तर

47
require 'fileutils' 

FileUtils.rm_rf(dir) 
+3

ध्यान रखें कि दस्तावेज़ों पर इस पर एक चेतावनी है: यदि आप पास नहीं करते हैं तो आप एक भेद्यता का पर्दाफाश कर सकते हैं: सुरक्षित rm_rf के लिए विकल्प। – BKewl

+0

@BKewl उस पर संदर्भ? – 0112

+2

@ alex0112: http://ruby-doc.org/stdlib-1.9.3/libdoc/fileutils/rdoc/FileUtils.html#method-c-rm_rf और http://ruby-doc.org/stdlib-1.9 देखें .3/libdoc/fileutils/rdoc/FileUtils.html # method-c-rm_r – BKewl

-1

laziest तरीका है:

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

एक शुद्ध रूबी रास्ता:

की आवश्यकता होती है 'fileutils'

FileUtils.rm_rf ("/ निर्देशिका// जाने के लिए")

यदि आपको थ्रेड सुरक्षा की आवश्यकता है: (चेतावनी, कार्यशील निर्देशिका में परिवर्तन)

FileUtils.rm_rf ("निर्देशिका/जाने/जाने",: सुरक्षित => सत्य)

संबंधित मुद्दे

 संबंधित मुद्दे