"Kurt Euler" <keuler / portal.com> wrote:

>
> 2) The following code was recommended to me by Matz some time ago.
>    What I want to know is, what do I replace <do_stuff_here> with
>    to copy every file found under "some_directory" to single target directory,
>    without reproducing the path structure. Result would be a single flat
>    directory some_target. (Not controlling for possible file duplicate
>    overwriting for the moment.)
>
>
>    for f in Dir.glob("./some_directory/**/*")
>        File.open(f) { |file|
>        <do_stuff_here>
>    }if File.file?(f)
>    end
>

syscopy (in 'ftools' lib) can take a directory as its target
and copies the source files' basename.

#------------

require "ftools"

TARGET = 'C:/TEMP/rbcopies'  # target directory
Dir.mkdir(TARGET) unless File.directory?(TARGET)

for f in Dir.glob("./some_directory/**/*")
  next unless File.file?(f)
  #
  # check for exists? / read-only etc.
  #
  File.syscopy(f, TARGET)
end

#------------


daz