View Single Post
Old 15th December 2013, 13:22   #1
helpmepl0x43
Junior Member
 
Join Date: Jan 2013
Posts: 2
SetOverwrite installation time

I was thinking of using SetOverwrite to have the installer skip installing files which already exist in the destination directory... this is to save the user some time because I have a few fairly large files, so I don't want it unnecessarily overwriting large files that already exist.

But there's this problem with SetOverwrite.

If I'm installing a bunch of files with SetOverwrite ifdiff (overwrite only if older/newer), eg:
code:

SetOverwrite ifdiff
File X
File Y



Let's say File X is 500mb, File Y is 1kb.
The destination folder already has an identical File X, but a different File Y.

Thus File X would get skipped, but File Y would be overwritten.

But here's what happens:
File X gets skipped - now that's about 15-20 seconds saved.
But when it comes to overwriting File Y, it then spends that saved 15-20s of install time to overwrite this measly 1kb file!!

This makes no sense to me! Am I missing something here?


I'm still relatively inexperienced at NSIS, so could someone suggest an alternative for overwriting files if they are found to be older/newer than the ones being installed?

Thanks
----------------
Edit:

I find that placing the SetOverwrite and large file at the very end of the script works fine (it installs Y quickly, and skips X as intended):
code:

File Y
SetOverwrite ifdiff
File X



But this doesn't help when you have multiple large files.

Last edited by helpmepl0x43; 15th December 2013 at 14:50.
helpmepl0x43 is offline   Reply With Quote