I don't know if this possible with Go but, to me it seems like you need a start file that keeps track of updates and downloads, renaming, deleting, etc. and starting the main program. That way you have a way to retry the download or keeping using the old file.
Have you considered making this a hosted application? Here's the approach. Use the separation model for your application, Data Tables in one file, Interface in the other. Not as hard as it sounds. Create an account for each entity. Not sure how you are doing things.
Deleting files is ALWAYS dangerous. You might try renaming the old file before downloading the new one. Just a thought, never tried it myself.
Look at 360works Mirrorsync. It may solve your problem. Their staff is very knowledgeable and helpful.
What you might consider is using an intermediate "helper" file that stores the new version in a container field, then saves it out over the top of the old one if the download worked OK.
Edit: This is along the lines of greatgrey's suggestion earlier. (For appropriate notice / credit.)
I actually do have a seperate hosted file that handles this update script. The problem I am seeing is that there are issues when replacing a file with the same name. Sometimes the user is prompted with the message : do you want to replace the existing file or keep it." If they choose keep it, they end up with multiple files.
Sometimes, and more often, it doesnt prompt them and just keeps both files, adding a (1) to the new file.
Thanks for the reply - I am actually using MirrorSync already, though I am not sure what they offer that would help with the file delivery, do they have an application for that?
If they're using the latest version of Go, it shouldn't be auto-saving with the appended index.
I'm not where I can check right now, but I think you can suppress the dialog using Export Field Contents and it will automatically overwrite the old file. At least that's how my updates work.
Edit: I was able to check my code. There's no option to suppress the dialogs, but I never get them when replacing a file. I just specify the file name and use Export Field Contents. Haven't had a problem.