revCopyFile slow?

Maarten Koopmans maarten.koopmans at gmail.com
Thu Apr 14 11:16:23 EDT 2011


Actually, the below functions work pretty fast on Win7 (will test on OS X).
Added them as a back script.... works nicely. Credit where credit is due,
the fileSize function I grabbed from the mailing list (weird that such a
thing is not readily available....)

function fileSize pFilePath
   -- split the file path into the folder and url-encoded file name
   local tFolder, tEncodedFile
   set the itemDelimiter to slash
   put item 1 to -2 of pFilePath into tFolder
   put urlEncode(item -1 of pFilePath) into tEncodedFile
   set the itemDelimiter to comma
   -- now change the defaultfolder and get the detailed files information
   local tOldDefaultFolder, tDetailedFiles
   put the defaultFolder into tOldDefaultFolder
   set the defaultFolder to tFolder
   put the detailed files into tDetailedFiles
   set the defaultFolder to tOldDefaultFolder
   -- filter down the list to just the file we're interested in
   filter tDetailedFiles with (tEncodedFile & ",*")
   return (item 2 of tDetailedFiles + item 3 of tDetailedFiles)
end FileSize

on copyFile source,destination
   --revCopyFile source,destination
   put fileSize(source) into theSize
   open file source for binary read
   open file destination for binary write

   put 16384 into buflen

   repeat until  theSize is 0
      if theSize >16384 then put 16384 into buflen
      read from file source for  buflen
      write it to file destination
      subtract buflen from theSize
      put theSize into buflen
   end repeat

      close file source
      close file destination
end copyFile

On Sun, Apr 10, 2011 at 4:57 PM, Mike Bonner <bonnmike at gmail.com> wrote:

> For shell windows showing look at the property hideConsoleWindows
>
> If you're worried about shell blocking, could do your file management stuff
> as a process instead.
>
> Syntax:
> open process appName [for [text|binary] {read | write | update | neither}]
>
> Haven't done much with open process myself, but can probably do what you
> want that way.
>
> On Sun, Apr 10, 2011 at 8:49 AM, Maarten Koopmans <
> maarten.koopmans at gmail.com> wrote:
>
> > I'll try the command shell, I hope the command window doesn't show.
> > Blocking behavior is another fear ( why revCopyFile is unacceptable).
> >
> > Thanks for all the hints and advice everybody!
> >
> > --Maarten
> >
> > On Sunday, April 10, 2011, Jim Ault <jimaultwins at yahoo.com> wrote:
> > > On Apr 10, 2011, at 5:31 AM, Mark Schonewille wrote:
> > >
> > > Maarten,
> > > That depends on many factors. I have been in situations where writing a
> > few tens of thousands of files too hours using read/write, while using
> the
> > shell command took a few minutes. I have also been in situations where
> > read/write was actually the preferred method. If it is about speed,
> though,
> > I'd go with the command line. You can do the benchmarking if it really
> > matters to you.
> > >
> > >
> > > And if you program your progress bar to show
> > > movie trailers, sports highlights, or car crashes,
> > > the user won't mind so much if the file writing process is slower.
> > >
> > > Jim Ault
> > > Las Vegas
> > >
> > >
> > > On 10 apr 2011, at 14:14, Maarten Koopmans wrote:
> > >
> > >
> > > Really?  Ever benchmarked open, read, write on files? How slow are
> they?
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > use-livecode mailing list
> > > use-livecode at lists.runrev.com
> > > Please visit this url to subscribe, unsubscribe and manage your
> > subscription preferences:
> > > http://lists.runrev.com/mailman/listinfo/use-livecode
> > >
> >
> > _______________________________________________
> > use-livecode mailing list
> > use-livecode at lists.runrev.com
> > Please visit this url to subscribe, unsubscribe and manage your
> > subscription preferences:
> > http://lists.runrev.com/mailman/listinfo/use-livecode
> >
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the use-livecode mailing list