Class: FileDir

Inherits:
Object
  • Object
show all
Defined in:
lib/file_dir.rb

Class Method Summary collapse

Class Method Details

.delete!(filedir) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/file_dir.rb', line 4

def self.delete!(filedir)
  begin
    case Dir.exist?(filedir)
      when true
        begin
          Dir.rmdir(filedir)
        rescue
          Dir.foreach(filedir) { | entry |
            delete!(filedir + '/' + entry) unless (entry == ".") or (entry == "..")
          }
          retry
        end
      else
        File.delete(filedir)
    end
  rescue
    $stderr.puts "Failed to delete #{filedir}"
  end
end

.mkdirtree(directory) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/file_dir.rb', line 23

def self.mkdirtree(directory)
  begin
    Dir.mkdir(directory)
  rescue SystemCallError => ex
    parent = File.dirname(directory)
    # Prevent an endless loop
    return true if Dir.exist?(directory)
    raise ex if parent.length == '/'
    self.mkdirtree(parent)
    retry
  end
end