Some operating systems (e.g. Mac OS X) don't set the filename until the download is complete. So it seems sufficient to use a wait or a while loop to check for the file to exist.
e.g.
File file = new File(fullPathToFile);
while (!file.exists()) {
Thread.sleep(1000);
}