アプリをプログラム ファイルにインストールする場合、常にインストール ディレクトリ内でファイルを作成および書き込むことができますか? 多くの異なるバージョンの Windows で動作するようですが、動作しない状況はありますか?
主に、ロギングにこのアプローチを使用しています。これが正しいアプローチでない場合、ログを記録するためのより良い場所はありますか?
注: インストーラーを実行するには管理者権限が必要であり、インストール ディレクトリ内のすべてのユーザーにフル アクセスが許可されます。
アプリをプログラム ファイルにインストールする場合、常にインストール ディレクトリ内でファイルを作成および書き込むことができますか? 多くの異なるバージョンの Windows で動作するようですが、動作しない状況はありますか?
主に、ロギングにこのアプローチを使用しています。これが正しいアプローチでない場合、ログを記録するためのより良い場所はありますか?
注: インストーラーを実行するには管理者権限が必要であり、インストール ディレクトリ内のすべてのユーザーにフル アクセスが許可されます。
アプリはユーザーとして実行されるのではなく、ユーザーはユーザーとして実行されます。アプリを Program Files にインストールし、そのために昇格されたアクセス許可が必要であると仮定して、標準ユーザーがそのアプリを実行すると、それがアクセス許可を必要とするユーザーになります。
インストール時に、インストーラーは、独自のファイルのどれを標準ユーザーが書き込み可能にする必要があるかを認識し、それに応じてアクセス許可を設定する必要があります。もちろん、ユーザー データはいずれにせよ Program Files にあるべきではありません。通常、これが %appdata% とユーザー プロファイルの目的です。
アプリに「Program Files\YourApp」にある globalsettings.ini などがある場合、管理者権限がある間 (つまり、インストール時) に、すべてのユーザーにその globalsettings.ini ファイルへの書き込み権限を付与する必要があります。またはパワーユーザー。またはグループ。または、アプリに適したものは何でも。
要約すると、いいえ、ユーザーは ProgFiles へのデフォルトの書き込みアクセス権を持っていません。
はい。アプリがWindows7で実行されている場合や、ユーザーアカウントが制限付きユーザーである場合など、これが機能しない状況は間違いなくあります。
ログファイルは常に一時ディレクトリまたはAppDataなどの特別なフォルダに配置されます。