[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: recursively descend and rename files.

Gibbs Tanton - tgibbs

7/7/2005 7:45:00 PM

Would renaming things as you go interfere with File.find or does it
slurp all the file names up before hand?

-----Original Message-----
From: dblack@wobblini [mailto:dblack@wobblini] On Behalf Of David A.
Black
Sent: Thursday, July 07, 2005 2:38 PM
To: ruby-talk ML
Subject: Re: recursively descend and rename files.

Hi --

On Fri, 8 Jul 2005, Ezra Zygmuntowicz wrote:

> Hello list-
> Could someone please shed some light on this situation for me? I
have a
> huge folder of logos that are named all willy nilly with weird
characters and
> spaces. I need to recursively descend through all of these folders and
rename
> each image so the names only contain [a-z0-9.-]. That part is fine I
already
> have the regex ready to do this. I need to know how to rename these
files as
> I recurse through the directory tree. I have this code so far:
>
> path = "/Volumes/Users/ez/LOGOS"
> files = []
> require 'find'
> Find.find(path) do |file|
> files << file if file=~ /.eps$/
> end
>
>
>
> This leaves me with an array of good filenames but they have their
complete
> path as well. What I need help with is for each file, pul just the
file name
> out of the path, do some gsub's on it and then rename it with the
output of
> the gsubs. So after all is said and done the original files will be
renamed
> to be compliant with the regexes I run on each one.
>
> Can some one please point me in the right direction?

You could just do the operation as you go:

Find.find(path) do |file|
fix(file) if /.eps$/.match(file) # or whatever
end

The fact that it's got the path attached shouldn't matter for the
renaming operation, since you're not chdir'ing.


David

--
David A. Black
dblack@wobblini.net



**********************************************************************
The information contained in this communication is
confidential, is intended only for the use of the recipient
named above, and may be legally privileged.
If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination,
distribution, or copying of this communication is strictly
prohibited.
If you have received this communication in error,
please re-send this communication to the sender and
delete the original message or any copy of it from your
computer system. Thank You.