次の場所に settings.xml というファイルがあります。
c:\solution1\solution1\data\settings.xml
今、私はやっています:
XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");
相対パスでそれを行う方法がわかりません。
次の場所に settings.xml というファイルがあります。
c:\solution1\solution1\data\settings.xml
今、私はやっています:
XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");
相対パスでそれを行う方法がわかりません。
実行可能ファイルに相対的な場合は、使用できます
string exeLocation = System.Reflection.Assembly.GetExecutingAssembly().CodeBase
頻繁に提案されることに注意してください
System.Reflection.Assembly.GetExecutingAssembly().Location
アセンブリが現在配置されているパスを取得します。これは、たとえばシャドウ コピーが実行されている場合は異なる場合があります。
使用できます
string exeDir = System.IO.Path.GetDirectoryName(exeLocation);
実行可能ファイルのディレクトリを取得します。
インストール場所の下のデータディレクトリにあるファイルを見つけたい場合は、次のようにすることができます
string dataFile = Path.Combine(exeDir, "data\settings.xml");
Windows Vista 以降では、デフォルトでは、インストール ディレクトリの下にあるディレクトリへの書き込みアクセス権がないことに注意してください。
開始元の現在のディレクトリからの相対値を取得することもできます
System.Environment.CurrentDirectory