2015-01-06 5 views
0

Я хочу проверить файл и скопировать его в другой каталог, если он существует. К сожалению, файл существует в папке AppData.NSIS извлекает и копирует файл из AppData

CheckFile: 
     !define INSTDIR_DATA "$APPDATA\Local\VirtualStore\Program Files\SomeFolder" 
     IfFileExists INSTDIR_DATA\SettingsFile.ini CopyOver NotHere 

Я попал в этот раздел без проблем, но тогда он не может найти файл, несмотря на то, что он явно уверен, что он существует. Я что-то упускаю? Следует отметить, что я хочу, чтобы этот каталог искал через текущий каталог пользователя, поэтому настройка его для всех пользователей не требуется.

ответ

0

NSIS имеет постоянную $ LocalAppData:

DetailPrint $AppData 
DetailPrint $LocalAppdata 

на моей системе это принты:

C:\Users\Anders\AppData\Roaming 
C:\Users\Anders\AppData\Local 

$ AppData не является на самом деле AppData "корень", но перемещаемый его часть.

Если у вас есть атрибут RequestExecutionLevel в вашем скрипте, это повлияет на то, как Windows относится к перенаправлению файловой системы, а VirtualStore - это часть этого.

+0

Итак, это помогает, но все еще не работает должным образом. Определяет это как «$ LocalAppdata \ VirtualStore \ Program Files \ Atari \ Nerf \ System» правильно? В настоящее время я не установлен уровень выполнения, должен ли я пытаться запустить эту функцию с правами администратора? Как именно это повлияет на поиск/копирование файла в VirtualStore? – Rajada

+0

Синтаксис для использования определения - $ {name}, поэтому я надеюсь, что ваш реальный код использует IfFileExists «$ {INSTDIR_DATA} \ ...». Уровень выполнения не должен влиять на поиск файлов в VirtualStore, но если вы его не установили и вы не подняты, вы не сможете копировать его в $ ProgramFiles (http://support.microsoft.com/kb/ 927387 # MT3). Если вы все еще не можете заставить его работать, попробуйте Process Monitor от Microsoft/Sysinternals, чтобы узнать, что не так с использованием пути, который вы используете ... – Anders

+0

О, я бы упустил что-то подобное. Благодаря! – Rajada

 Смежные вопросы

  • Нет связанных вопросов^_^