C# %AppData% のパスを取得する 質問する

C# %AppData% のパスを取得する 質問する

C# 2008 SP1

以下のコードを使用しています:

dt.ReadXml("%AppData%\\DateLinks.xml");

ただし、アプリケーションが実行されている場所を示す例外が発生します。

パス 'D:\Projects\SubVersionProjects\CatDialer\bin\Debug\%AppData%\DateLinks.xml' の一部が見つかりませんでした。

%AppData%相対パスを見つける必要があると思いました。WindowsStart|Run|%AppData%エクスプローラーにアクセスすると、そのディレクトリに移動します。

ユーザーはクライアントマシンごとに異なるため、フルパスを入力することはできません。

ベストアンサー1

AppDataディレクトリを取得するには、次の方法を使用するのが最適ですGetFolderPath

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

(using System存在しない場合は追加する必要があります)。

%AppData%は環境変数であり、.NETのどこでも自動的に展開されることはありません。ただし、明示的にEnvironment.ExpandEnvironmentVariableそうするための方法です。GetFolderPathただし、Johannes Rössel がコメントで指摘しているように、%AppData%特定の状況では設定されない可能性があるため、使用することを強くお勧めします。

最後に、例に示すようにパスを作成します。

var fileName = Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.ApplicationData), "DateLinks.xml");

おすすめ記事