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