Progress Bar during cp or ditto shell script

I am writing a simple ASS application that copies files from a source to a destination and since the copies are quite lengthy I would like to provide a progress bar.

In searching the web and this forum I have found complaints that progress bars don’t update during “do shell script” commands, and I have found solutions that show the indeterminate progress bar (like at http://www.mactech.com/articles/mactech/Vol.22/22.08/GUI-upyourScript/index.html ) during a file copy.

How would I provide meaningful progress during the copy of many large files?

Instead of one copy of the entire source directory do I need to instead get a list of all of the source files the iterate through each of them updating the progress bar as I go?

Interating and calling each file as a separate copy is what I figured out how to do and my progress bar now chunks along, but the progress bar stops and my app in general seems to lose responsiveness during each file copy. Some of the larger files that take a while to copy make this more pronounced.

What is the best way to copy a file and have the progress bar indicate the progress of that copy without “freezing” the progress bar and the application?