Я хочу проверить файл и скопировать его в другой каталог, если он существует. К сожалению, файл существует в папке AppData.NSIS извлекает и копирует файл из AppData
CheckFile:
!define INSTDIR_DATA "$APPDATA\Local\VirtualStore\Program Files\SomeFolder"
IfFileExists INSTDIR_DATA\SettingsFile.ini CopyOver NotHere
Я попал в этот раздел без проблем, но тогда он не может найти файл, несмотря на то, что он явно уверен, что он существует. Я что-то упускаю? Следует отметить, что я хочу, чтобы этот каталог искал через текущий каталог пользователя, поэтому настройка его для всех пользователей не требуется.
Итак, это помогает, но все еще не работает должным образом. Определяет это как «$ LocalAppdata \ VirtualStore \ Program Files \ Atari \ Nerf \ System» правильно? В настоящее время я не установлен уровень выполнения, должен ли я пытаться запустить эту функцию с правами администратора? Как именно это повлияет на поиск/копирование файла в VirtualStore? – Rajada
Синтаксис для использования определения - $ {name}, поэтому я надеюсь, что ваш реальный код использует IfFileExists «$ {INSTDIR_DATA} \ ...». Уровень выполнения не должен влиять на поиск файлов в VirtualStore, но если вы его не установили и вы не подняты, вы не сможете копировать его в $ ProgramFiles (http://support.microsoft.com/kb/ 927387 # MT3). Если вы все еще не можете заставить его работать, попробуйте Process Monitor от Microsoft/Sysinternals, чтобы узнать, что не так с использованием пути, который вы используете ... – Anders
О, я бы упустил что-то подобное. Благодаря! – Rajada