- - PR -
XmlファイルのLoadについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-30 14:38
いつもおせわになっています。
実行ファイルのexeが存在している同じパスにxmlファイルを置き、 xmlファイルを以下のようにloadしてプログラム内で使用しています。 ↓ XmlDocument doc = new XmlDocument(); doc.Load("test.xml"); 通常は問題なくexeが存在する同じパスのtest.xmlファイルを参照するのですが openFileDialogでまったく別のパスを選択する処理を行った後で xmlファイルのLoadを再度行うとopenFileDialogで選択したパス先の test.xmlを参照しようとしてエラーになります。(Path.GetFullPath(".")でパス確認) openFileDialogを使用するとルートパスが変わってしまうものなんでしょうか? また、exeファイルが存在しているパスを変数に退避しておく方法以外で 常にexeファイルの存在パスをルートにしてxmlファイルを参照することは 出来るでしょうか? | ||||
|
投稿日時: 2006-11-30 14:46
Application.StartupPath プロパティで絶対パスにしましょう。
# XML ファイルだとか Load メソッドだとかは本題と関係なさそうですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-11-30 14:55
過去に同じ経験をしたことがあります。
じゃんぬねっとさんが仰るように絶対パスにしてあげるのが良いですね。 doc.Load(Path.Combine(Applicaion.StartupPath, "test.xml"); みたいに _________________ -------------------------------------------- HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ | ||||
|
投稿日時: 2006-11-30 15:08
ここだけに着目して回答します。 ルートパスというよりカレントディレクトリが変更されます。 変更されないようにするためにはダイアログの RestoreDirectory プロパティを True にしてあげるとカレントディレクトリが変更まえの状態に戻されます。 | ||||
|
投稿日時: 2006-11-30 15:53
じゃんぬねっとさん、HIROさん、ダッチさん
ありがとうございます。 doc.Load(Path.Combine(Applicaion.StartupPath, "test.xml")); の方法でエラーが出なくなりました。 | ||||
|
投稿日時: 2006-11-30 18:26
エラーが出なくなりましたって・・ちょっと微妙だなw なぜでなくなったのかわかっているんだろうか |
1