Думаю, вы решаете не ту проблему.
Что вам следует сделать, так это выяснить, как определить, когда какой-либо FTPd, который вы используете, завершает запись файла - таким образом, когда у вас возникает такая же проблема, скажем, для GIF, DOC или MPEG, нужно исправить это снова.
Как именно вы это сделаете, зависит в значительной степени от того, какой FTPd и на какой ОС вы работаете. Некоторые из них, я полагаю, имеют зацепки, которые вы можете установить для запуска после завершения загрузки.
Если вы можете запустить свой собственный FTPd, Net :: FTPServer или POE :: Component :: Server :: FTP можно настроить для правильной работы.
При отсутствии этого:
1) попробуйте переписать логи с помощью Perl-скрипта, который ищет сообщения «загрузка завершена»
2) используйте что-то вроде lsof
или fuser
, чтобы проверить, блокирует ли что-либо файл, прежде чем пытаться скопировать его.