Suppose I have an Excel sheet, which has the some numbers say:
77787
45877
78985 so on...
Now I have an directory called as “D://Filehosting” in windows 7
machine. under that directory I have some 500 folders, each of them
having 120 files in it. Now I want to delete the contents of each folder
which which are 2 months older from the current date. Now the folders
are arranged something like below:
D://Filehosting/Document77787
D://Filehosting/Document45877 .. so on
Script should take the numbers as mentioned above, and accordingly find
the right directory and accordingly delete the contents.Must check if
the if the folder exists or not before content deletion approach.
what I have is only the Request number and the base directory
Filehosting. then how would I make Document77787 so on… on the fly?
having 120 files in it. Now I want to delete the contents of each folder
what I have is only the Request number and the base directory
Filehosting. then how would I make Document77787 so on… on the fly?
Can it be done using Ruby?
Probably. I can’t help you with reading the numbers from the Excel
sheet but assuming you have those numbers in an Array or Set you could
do something like this:
require ‘pathname’
require ‘fileutils’
DELTA = 2 * 30 * 24 * 60 * 60
base = Pathname “D:/Filehosting”
limit = Time.now - DELTA
numbers.each do |num|
dir = base + “Document#{num}”
next unless dir.directory?
newest = dir.mtime
dir.find do |file|
newest = [newest, file.mtime].max
end
numbers.each do |num|
dir = base + “Document#{num}”
next unless dir.directory?
newest = dir.mtime
dir.find do |file|
newest = [newest, file.mtime].max
end
FileUtils.rm_rf dir if newest < limit
end
Cheers
robert
Thanks Robert for your help! Now what such “#” operator is doing? Could
you just guide me? Any other package which can do the same instead of
“stdlib”, would you refer? I would like to read file system module of
Ruby.