[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

If error occurs should not copy again from the beginning

Newb Newb

4/29/2009 6:26:00 AM

Hi..
I try to copy folders recursively..

my_dir = Dir.glob( Dir.glob("#{@source}/**/*")

my_dir.each do |f|
File.copy(f,@@dest)
end

For example @source = e:/test_dir
If that test_dir has 10 files.if some error occurs while copying a 4th
file,Again copying of the file should not continue from 1st file to 10th
file again.
If that 4 th file not copied due to any errors it should continue
copying from 5 th file and so on...

I think using arrray index might do the trick.
Any ideas
Thanks
--
Posted via http://www.ruby-....

3 Answers

Heesob Park

4/29/2009 6:49:00 AM

0

Hi,

2009/4/29 Newb Newb <revathy.p@angleritech.com>:
> Hi..
> I try to copy folders recursively..
>
> =C2=A0my_dir =3D Dir.glob( Dir.glob("#{@source}/**/*")
>
> =C2=A0my_dir.each do |f|
> =C2=A0 File.copy(f,@@dest)
> =C2=A0end
>
> For example @source =3D e:/test_dir
> If that test_dir has 10 files.if some error occurs while copying a 4th
> file,Again copying of the file should not continue from 1st file to 10th
> file again.
> =C2=A0 =C2=A0 If that 4 th file not copied due to any errors it should co=
ntinue
> copying from 5 th file and so on...
>
> I think using arrray index might do the trick.
> Any ideas
> Thanks

my_dir.each do |f|
begin
FileUtils.copy(f,@@dest)
rescue
# some error handling
end
end

Or

my_dir.each do |f|
FileUtils.copy(f,@@dest) rescue nil
end


Regards,

Park Heesob

7stud --

4/29/2009 7:00:00 AM

0

Newb Newb wrote:
> Hi..
> I try to copy folders recursively..
>
> my_dir = Dir.glob( Dir.glob("#{@source}/**/*")
>
> my_dir.each do |f|
> File.copy(f,@@dest)
> end
>
> For example @source = e:/test_dir
> If that test_dir has 10 files.if some error occurs while copying a 4th
> file,Again copying of the file should not continue from 1st file to 10th
> file again.
> If that 4 th file not copied due to any errors it should continue
> copying from 5 th file and so on...
>
> I think using arrray index might do the trick.
> Any ideas
> Thanks

10.times do |i|
begin
puts "reading file #{i}"

if i == 4
raise "error reading file #{i}"
end

rescue RuntimeError => msg
puts msg
next
end
end

--output:--
reading file 0
reading file 1
reading file 2
reading file 3
reading file 4
error reading file 4
reading file 5
reading file 6
reading file 7
reading file 8
reading file 9

--
Posted via http://www.ruby-....

7stud --

4/29/2009 7:04:00 AM

0

7stud -- wrote:


rescue RuntimeError => msg
puts msg
next <---***Don't need that
end
end



--
Posted via http://www.ruby-....