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