2011-08-12 19 views
1

アプリケーションがインストールされているディレクトリにファイルを作成するにはどうすればよいですか?私のアプリケーションがINNO SETUPでインストールされているディレクトリにテキストファイルを作成するには?

私は以下を試しましたが、うまくいきません。基本的には、Windows XPではC:\ Program Files \ MyAppName \、Windows Vista以降ではC:\ Program Files(x86)\ MyAppNameにファイルを作成する必要があります。

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

は –

+0

は、この文字列のパス= Environment.CurrentDirectoryを試してみてください...非常に有用です。 –

答えて

5

これは、ユーザーがそれをインストールする別のディレクトリを選択した場合には、特別な定数{アプリ}を、使用することをお勧めします。

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

は(すべてのユーザーで共有)アプリケーションデータディレクトリにファイルを保存するには{app}の代わりに{commonappdata}という定数を使用します。

{app}は、 "C:¥Program Files¥My Application¥"(またはアプリケーションのインストールを選択した場所、OSによって異なります)を指していることに注意してください。 {commonappdata}は、他の一方で、アプリケーションデータディレクトリのルートを指し、それは、あなたのアプリケーションのためのディレクトリを追加するには、この場合には良いアイデア(または会社とアプリ)したい:

たとえば、 :「それは動作しません」

SaveStringToFile(ExpandConstant('{commonappdata}\Foobar Corporation\Our Application\Registration.txt'), Serial, False); 
+0

代わりにアプリケーションデータフォルダにファイルを書き込むことはできますか? –

+0

編集された回答を参照してください – kes

+0

これは私が得るものです:内部エラー:初期化される前に "app"定数を拡張しようとしました。 – malat

-1

これはアクセス許可の問題であると仮定して、代わりにEnvironment.SpecialFolders.ApplicationDataを使用する必要があります。アプリケーションがアンインストールされた場合にファイルを保持できるという利点があり、非常に便利です...

+0

私は.NETでそれを行う方法を知っています...私はINNOセットアップを使用してそれを行う方法を知る必要があります。 –

-1

この文字列を試すpath = Environment.CurrentDirectory;

+0

Innoスクリプトには適用されません。 – Deanna

関連する問題