私は単純な問題があります。私はそれが現在に%userprofile%
を追加しようとするため、それがエラーを吐くファイルc#ファイルを開く、%userprofile%で始まるパス
としてそれを開こうとすると
%USERPROFILE%\AppData\Local\MyProg\settings.file
:私はこのようになり、ユーザーディレクトリ内のファイルへのパスを持っていますディレクトリ、それは次のようになります。
C:\Program Files\MyProg\%USERPROFILE%\AppData\Local\MyProg\settings.file
は、どのように私はそれが%USERPROFILE%
で始まるパスは絶対的ではなく、相対パスであることを認識させるのですか?
PS:私はちょうどその名前でファイルを開く必要がありますので、私は
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
を使用することはできません。ユーザーが名前を指定します。ユーザーが "settings.file"を指定した場合は、プログラムのディレクトリを基準にファイルを開く必要があります。ユーザーが%USERPROFILE%
で始まるパスを指定している場合や、C:\に変換するその他のものを開く必要があります。
'Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)'だけではないのはなぜですか? –
これはより一般的です - 渡される環境変数は常に '%USERPROFILE%'になると仮定しています。 (これは質問が求めているものです - 環境変数を拡張することを求めています - 使用されている例はユーザープロファイルが付随的であるということです)。 – Oded
ああ、そうです。 OPが与えた悪い例 –