You're right. It's an option to consider.

Thank you.

Le 2 janv. 07 à 07:39 Matin, Tom Benson a écrit:

Yes,

Your app should definitely still comply with the (antiquated) HIG.

As far as your users are concerned, they're copying files.

The other option I would consider is a simple syncing arrow alá Finder iDisk sync / OS X Mail etc, and do the copy as a background task. No progress bars, but still a good visual indication that your app is doing something. You could then simply give a string feedback calculated by total .Length about estimated time remaining, which means more to people than the number of files remaining.

That is one of my pet peaves with Windows. If you're copying a large folder it may seem like the progress is screaming through, but then it will grind to a halt on a large file, because the progress bar shows the number of files, not the amount of data.

- Tom

On 02/01/2007, at 12:54 PM, Arnaud Nicolet wrote:

Thanks for your advice.

My problem here is that the "maximum" property of a progress bar is "only" an integer. The problem is not the number of files, it's the length of all these.

Currently, if a file's length is greater than a certain amount, I set the progress bar's maximum value to File.Length/ ThisCertainAmount and I read ThisCertainAmount number of bytes off the file. If I don't do that, my progress bar may have a "maximum" value not supported and becomes unreliable (either never shows any progress, even when value is 1 or maximum either full since the beginning). So, in order to follow your advice, I'd have to treat files one by one, computing either value+file.length or value+file.length/ ThisCertainAmount, then check to see if the total is not higher than an integer (and what should I do if that happens?) and then copy the files as I currently do.

Since my application only deals with virtual volumes (and, therefore, is not supposed to be used by "standard" users), should I still apply the Apple HIG? I'd prefer not but I ask.

Le 2 janv. 07 à 02:37 Matin, Tom Benson a écrit:

My advice,

Loop over all of your files and add all of their .Length properties together.

Make one progress bar, and set it's maximum to the valued of the combined .Lengths

increment it by the length of each individual file once the file has been copied.


Unless, of course, you have a huge amount of files.

- Tom

On 02/01/2007, at 11:50 AM, Arnaud Nicolet wrote:

Le 2 janv. 07 à 01:25 Matin, Craig A. Finseth a écrit:

   In a window, I put 2 progress bars. The first one says "Files
remaining to be copied:" and the second one says "Copy progress:". When a file is being copied, the second progress bar shows how many
   bytes have already been copied. Then, the first progress bar is
   incremented by one.

My question: is my first progress bar supposed to count the actual
   file or is it supposed to only count files when they have been
   completely copied?

AFAIK, it should only count those that are complete. I.e., it should
not go to 100% until the operation is 100% complete.

That's why I did the opposite :-(

Ideally, you would scale the first bar by the size of the files
involved. It is my understanding that a progress bar should primarily
reflect the elapsed time.  Of course, this is tricky and not often
done...(:-).

Well, my application is not ideal...

Thank you
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to