Как создать текстовый файл в каталоге, в котором мое приложение установлено с INNO SETUP? - PullRequest
1 голос
/ 12 августа 2011

Как я могу создать файл в каталоге, в котором установлено мое приложение?

Я пробовал следующее, и оно не работает. В основном мне нужно иметь возможность создать файл в C: \ Program Files \ MyAppName \ в Windows XP или C: \ Program Files (x86) \ MyAppName в Windows Vista и новее.

SaveStringToFile("{pf}\{#MyAppName}\Registration.txt", Serial, False);

Ответы [ 3 ]

5 голосов
/ 13 августа 2011

Лучше использовать специальную константу {app}, если пользователь выбирает другой каталог для установки.

SaveStringToFile(ExpandConstant('{app}\Registration.txt'), Serial, False);

Чтобы сохранить файл в каталоге данных приложения (общий для всех пользователей), используйте константу {commonappdata} вместо {app}.

Обратите внимание, что {app} указывает на «C: \ Program Files \ My Application \» (или там, где пользователь выбрал установку приложения и в зависимости от ОС). {commonappdata}, с другой стороны, указывает на root каталога Application Data, поэтому в этом случае было бы неплохо добавить каталог для вашего приложения (или компании и приложения):

Например:

SaveStringToFile(ExpandConstant('{commonappdata}\Foobar Corporation\Our Application\Registration.txt'), Serial, False);
0 голосов
/ 13 августа 2011

попробуйте эту строку пути = Environment.CurrentDirectory;

0 голосов
/ 12 августа 2011

Предполагая, что это проблема с разрешениями, вы должны использовать Environment.SpecialFolders.ApplicationData. Это дает дополнительное преимущество, позволяя вам сохранить ваш файл, если приложение удалено, что может быть очень полезно ...

...