2016-11-03 6 views
-1

私のアプリケーションの設定フォルダでファイルを検索しようとしています。そこにxmlファイルがあります。私は次のコードを実行すると:ファイルのディレクトリに '/ bin'が含まれているのはなぜですか?

XDocument xDoc = XDocument.Load(@"..\settings\Settings.xml");

を私はDirectoryNotFoundExceptionを取得し、例外は上記\bin\settings\Settings.xml'.、代わりのでは見られないと言います。私は問題を見るために完全なルートディレクトリを試しました、C://...しかしそれはまだbinフォルダを含んでいますか?

bin部分が含まれないようにするにはどうすればよいですか?

+0

あなたのアプリはどうやって動いていますか?あなたのアプリはどのディレクトリ*ですか?現時点では、文脈はほとんどありません。 –

+3

アプリケーションは "\ bin \ debug \"から実行されます。最初の ".."は1つのディレクトリ - > "\ bin \ settings"になります。だから正しいディレクトリから実行するか、別の ".. \"をパスに追加してください(開発中) –

答えて

2

デフォルトでは、Visual Studioのビルド結果はbin\Debugのようなフォルダに保存されます。 1つ上のフォルダをジャンプする相対パスを使用するため、yourProjectFolder\bin\settings\Settings.xmlが得られます。そのファイルは、おそらくプロジェクトフォルダにあり、binフォルダではないので、存在しません。

これに対処する典型的な方法は、コンテンツの一部であるはずのファイルが実際にビルドアクションをコンテンツに設定していることを確認することです。

根付いたパスを使用すると、間違いなく間違いが起こります。パスが全くルートされていないか、ファイルパスではなくURIとしてパスを解釈するようなことをしているかのいずれかです。 XDocument.LoadはファイルパスではなくURIをとります。ファイルシステム上の絶対パスを参照する適切な方法は、file://C:/ThePath/Settings/Settings.xmlです。

+0

誰かがアプリケーションのビルドをオフにするには愚かであれば、あなたはしないでください。これは正解です "ビルドアクションはコンテンツに設定されました"とにかく、ビルドをやり直してから... – FakeCaleb

関連する問題