1

次の場所に settings.xml というファイルがあります。

c:\solution1\solution1\data\settings.xml

今、私はやっています:

XDocument doc = XDocument.Load(@"c:\solution1\solution1\settings.xml");

相対パスでそれを行う方法がわかりません。

4

2 に答える 2

5

実行可能ファイルに相対的な場合は、使用できます

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 以降では、デフォルトでは、インストール ディレクトリの下にあるディレクトリへの書き込みアクセス権がないことに注意してください。

于 2012-10-02T21:29:35.683 に答える
0

開始元の現在のディレクトリからの相対値を取得することもできます

System.Environment.CurrentDirectory
于 2012-10-02T21:31:34.293 に答える