Rekursivt ta bort kataloger med Ruby
- sön 5 feb, 2006 kl 10:54
- Kommentera!
- Java
rekursivt. Detta kan vara mycket användbart då man inte vill ha dessa kataloger kvar om man behöver checka in en version av ett repository på nytt.För *nix-användare kanske det här aldrig har varit något problem då de direkt har tillgång till kraftfulla script-möjligheter. För windows-användare däremot har det varit betydligt svårare. Här kommer följande ruby-script väl till hands.
def deleteDir(dir)
puts "cd #{dir}"
Dir.chdir(dir)
Dir.foreach(dir) do |file|
if file != "." and file != ".."
if File.directory?(file)
deleteDir("#{dir}/#{file}")
else
puts "delete file #{file}"
File.delete(file)
end
end
end
Dir.chdir("..")
puts "delete directory #{dir}"
Dir.delete(dir)
end
def processDir(dir)
#puts "Processing directory #{dir}"
Dir.chdir(dir)
Dir.foreach(dir) do |file|
if File.directory?(file)
if file == ".svn"
puts "Deleting directory #{dir}/#{file}"
deleteDir("#{dir}/#{file}")
elsif file != "." and file != ".."
processDir("#{dir}/#{file}")
end
end
end
Dir.chdir("..")
end
puts "Working directory: #{Dir.pwd}"
processDir(Dir.pwd)
Det är bara att klistra in i en fil och köra ruby Scriptet ovan tar bort kataloger som heter .svn, passar inte det är det bara att ändra i villkoret i skriptet.