On Oct 28, 1:40     
> -------- Original-Nachricht --------
>
>
>
> > Datum: Wed, 29 Oct 2008 02:53:09 +0900
> > Von: Bee Tard <sca... / gmail.com>
> > An: ruby-t... / ruby-lang.org
> > Betreff: createing directories and moving files into it
> > I have an undetermined list of directories.
>
> > I am trying to loop through them all and in each one I want to make a
> > directory called 'images'. when i do this, I want o move all the imagges
> > in that folder into it.
>
> > so i have a tree like this:
>
> > some-dir
> > \_abc
> >  img00971273.jpg
> >  img21234235.jpg
> >  img12345623.jpg
> > \_123
> >  img99554361.jpg
> >  img21234235.jpg
> >  img53840534.jpg
> > \_xyz
> >  img00930443.jpg
> >  img12364235.jpg
> >  img09982623.jpg
> > \_890
> >  img00923871.jpg
> >  img21292835.jpg
> >  img08836823.jpg
>
> > I would like to create
>
> > some-dir
> > \_abc
> >  
> >  img00971273.jpg
> >  img21234235.jpg
> >  img12345623.jpg
>
> > And so on and so forth.
>
> > Hope this illustration makes sense. I have tried to create a loop and go
> > through each directory and use system() to 'mkdir images' and mv *.jpg
> > /images
>
> > no luck as yet. really starting to like some of Ruby's fileutils. just
> > wish i could get moving with some of these tasks :)
>
> > All help greatly appreciated. I'll buy you a beer at lunch.
> > --
> > Posted viahttp://www.ruby-forum.com/.
>
> Hi ---
>
> you can create a directory, if it doesn't yet exist, using fileutils:
>
> irb(main):001:0> require "fileutils"
> => true
> irb(main):002:0> FileUtils.mkdir_p "temp5"
> => "temp5"
>
> If you do it again, that doesn't matter.
> For moving files, I like the rio gem:
>
> http://rio.rubyforge.org/
>
> require "rubygems"
> require "rio"
>
> Iterate over the .rb files in a directory and its subdirectories.
>
>  﨧򧩮󨧪⧩ 
>
>  do some checks on entrio.to_s to classify things
>
> if /\.jpg$/.match(entrio.to_s)
> p "it's an image
> end
>
>  
>
> Do       >
> Best regards,
>
> Axel
> --
> Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
> Ideal f Modem und ISDN:http://www.gmx.net/de/go/smartsurfer

Using Rio's rename-mode:

require 'rio'

# This will work if the only images under 'some-dir' are
# as stated in the problem

rio('some-dir').rename.all.files('*.jpg') do |ifile|
  ifile.dirname = rio(ifile.dirname,'images').mkdir
end

# This is little more robust

rio('some-dir').dirs do |d|
  d.rename.files('*.jpg') do |ifile|
    ifile.dirname = rio(ifile.dirname,'images').mkdir
  end
end