That scheme is inefficient and fragile. Why bother to read the entire file and calculate a hash on it, when checking the file size is a whole lot faster and for an FTP upload, is just as good?

If my scheme of checking a hash is fragile then checking
file sizes is just as bad if not worse for the same
reasons you stated mine was bad.

As you say if the upload stalls for X+1 seconds then
you are going to end up colliding with the upload when
you act on what you assume is a finished file.

I personally like the bit banging method much better
but unfortuneatly that is UNIX-centric and is not portable
to say Win32 and friends.

As others have said there are no really clean and
portable ways of doing this and YMMV no matter what
method you use. Generating MD5 hashes worked for me
and in a batch environment are not that expensive.

Peter L. Berghold -- Unix ProfessionalPeter at Berghold dot Net

Dog trainer, dog agility exhibitor, brewer of
fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and
a good Belgian ale in your chalice.