Powered By Blogger

08 June 2007

ตัวอย่างโปรแกรม Ruby ลบแฟ้มและ directory



ตัวอย่างโปแกรม Ruby สำหรับ ลบ TempFile
ใน Internet Explorer
โดยลบทั้ง file และ folder
และป้องกันปัญหาที่เกิดขึ้นเมื่อ มีการ ลบแฟ้มที่ลบไม่ได้ ซึ่งจะแจ้ง error แล้ว ทำงานต่อไป

ในที่นี้ สมมุติ user login windowsxp คือ css1

listtempfile(false) สำหรับ แสดงข้อมูล เท่านั้น
listtempfile(true) สำหรับลบ ด้วย

การ Run Program
C:\>ruby app1.rb


#---------------------------------
#file : app1.rb

dir1 = 'C:\Documents and Settings\css1\Local Settings\Temp'
dir1 ='C:\Documents and Settings\css1\Local Settings\Temporary Internet Files'
dir1 ='C:\Documents and Settings\css1\Local Settings\Temporary Internet Files\Content.IE5'


def listallfile(dir1)
puts dir1
i = 0
delcount = 0
Dir.chdir(dir1 )
Dir.foreach(dir1) { x
i += 1
print("Got #{i} " + x + ' ' + File.size(x).to_s)
if FileTest.directory?(x) and x != '.' and x != '..'
print (' [dir]')
Dir.foreach(x) {y
puts " Gots #{y}" + ' ' + FileTest.directory?(y).to_s
}
end
puts ""
}
end

def listtempfile( isdel )
dir1 ='C:\Documents and Settings\css1\Local Settings\Temporary Internet Files\Content.IE5'
puts dir1
i = 0
delcount = 0
Dir.chdir(dir1 )
Dir.foreach(dir1) { x
i += 1
print("Got #{i} " + x + ' ' + File.size(x).to_s)
if FileTest.directory?(x) and x != '.' and x != '..'
print (' [dir]')
Dir.foreach(x) {y
puts " Gots #{y}" + ' ' + FileTest.directory?(y).to_s
if isdel and ( not FileTest.directory?(y))
begin
fname = x + '\\' + y
print 'try delete ' + fname
File.delete(fname )
print " deleted"
rescue Exception => ex
print " can not delete " + ex
end
puts "" #new line
end

}
# del dir
if isdel
begin
puts "try to delete " + x
Dir.delete(x )
rescue
puts "can not delete dir " + x
end
end
end
puts ""
}
end


def delallfile(dir1)
i = 0
delcount = 0
Dir.chdir(dir1 )
Dir.foreach(dir1) { x
i += 1
puts("Got #{i} " + x )
begin
if ( File.stat(x).file? )
delcnt = File.delete(x )
delcount += delcnt
end
rescue Exception => detail
puts "can not delete " + x + " " + detail
end
}
puts "deleted #{delcount} file(s) "
end

#-----------------

#listtempfile(false)
listtempfile(true)

#---- end of file



อย่ารันเล่นนะครับ ไม่รับประกัน ความผิดพลาด นะครับ

No comments: