Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: How to copy file ?

From: atruter:labyrinth:au at: 12-Oct-2003 12:11

> the problem with copying files that way, is that it doesn't seem to > really scale. i.e. it seems to be impossible to copy a 600mb file > (rebol crashes, at least on win32 the last time i tried).
The crash is probably due to the fact that read tries to copy the entire 600mb file into memory *before* then writing it to disk. For large files, copying portions at a time using ports could be the answer. I use the following function to copy files to a DVD (2048 being the 2Kb DVD block size). dcopy: function [ source-file [file!] "Source file" target-file [file!] "Target file" ][ source-port target-port data ][ ; Can't open a file in use either not none? attempt [source-port: open/binary/direct source-file][ target-port: open/binary/direct/new target-file while [data: copy/part source-port 2048][ insert tail target-port data ] close source-port close target-port ][ write/binary target-file read/binary source-file ] ; Reclaim used memory recycle ] Regards, Ashley