On Thu, Jan 10, 2013 at 10:19 AM, Robert Klemme
<[email protected]> wrote:
> On Thu, Jan 10, 2013 at 10:01 AM, Arup Rakshit <[email protected]> wrote:
>> Hi,
>>
>> 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?
>>
>> 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
>
>   FileUtils.rm_rf dir if newest < limit
> end

PS: You can as well ignore the Excel and read directories from the file system:

Pathname.glob(base + "Document*").each do |dir|
...
end

Kind regards

robert

-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

-- You received this message because you are subscribed to the Google Groups 
ruby-talk-google group. To post to this group, send email to 
[email protected]. To unsubscribe from this group, send email 
to [email protected]. For more options, visit this 
group at https://groups.google.com/d/forum/ruby-talk-google?hl=en

Reply via email to