OK I have a folder watcher type program which uses a simple timer to check for new files being added to a directory every 30 seconds. The problem is that there is no way, at least that I can find, to tell for sure if the file is ready to be processed. These are big video files, so if the user is copying them from another drive or a network share it could take several minutes from the time they show up in the directory to the time they're actually ready to be processed.

I've tried using a few tricks to determine if they're ready like opening the file in exclusive mode or checking the file size to see if it's growing, but these have been unreliable. Is there any way to tell for sure when a file has finished copying? Or are these tricks my only option?

Thanks,
Dan