Search code examples
nsis

How to move a subdirectory with its contents to another directory with NSIS


this is the first time I work with NSIS, I want to edit an script NSIS to allow me:

If first instalation -> create the directory "Affaires" in the location "C:\Users\ali.ait-mouhoub.ext\AppData".

If it is an update (So the directory "Affaires" it already exists in "C:\N.O.E") -> move the directory "Affaires" with its contents to "C:\Users\ali.ait-mouhoub.ext\AppData".

The current script creates the directory "Affaires" in "C:\N.O.E".

Can you please help me modify my script to meet my needs?


Solution

  • If the both the new and old locations are on the same volume then you can use Rename:

    Section
    Rename "$InstDir\Stuff" "$InstDir\OldStuff"
    SectionEnd
    

    If the new location might be on a different volume then you have to copy+delete:

    !include LogicLib.nsh
    
    Section
    ClearErrors
    CopyFiles /Silent "$InstDir\Stuff" "x:\Backup"
    ${If} ${Errors} 
      MessageBox MB_ICONSTOP "Unable to move!"
    ${Else}
      RMDir /R "$InstDir\Stuff"
    ${EndIf}
    SectionEnd