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");