From: Martin Martinos Date: 2008-01-17T23:51:27+09:00 Subject: Re: How to force a copy over a read-only file Glen Holcomb wrote: > On Jan 14, 2008 5:45 PM, Martin Martinos wrote: > >> require 'fileutils' >> Thanks in advance >> -- >> Posted via http://www.ruby-forum.com/. >> >> > You need to change the permissions, either via the operating system > (independently from your script) or do it in your script before you > copy. > > -- I thought about this solution, but in fact I don't want to change the state of the other files that are in the destination location. If I want to do that I need to do something like: require 'pathname' require 'fileutils' include FileUtils::Verbose def cp_rf(src, dest) src_files = Dir[File.join(src, '**/*.*')] src_files.each do |src_file| rel_path_src = Pathname.new(src_file).relative_path_from(Pathname.new(src)) dest_file = dest + rel_path_src dest_dirname = File.dirname(dest_file) mkdir(dest_dirname) unless File.exist?(dest_dirname) if ( File.exist?(dest_file.to_s) && !File.writable?(dest_file.to_s)) File.chmod(0664, dest_file) end cp(src_file, dest_file) end end I there a more easier way to do that. Because It is much more easier to write: system("xcopy c:\temp c:\temp2 /e /r /Y") I feel that the FileUtils module is not complete. -- Posted via http://www.ruby-forum.com/.