2016-06-16 5 views
3

私はWPFプロジェクトを作成し、ソリューションに "ResFiles"フォルダを追加しました。このフォルダの中に私はいくつかのXMLファイルを入れました。コードでは、これらのファイルにアクセスするために、私は以下で説明する相対パスを使用しています。ソリューションフォルダ内のローカルファイルの問題

using (StreamWriter writer = new StreamWriter(@"../../ResFiles/xyz.xml")) 
     { 
      serializer.Serialize(writer, mydata, ns); 
     } 

これは問題なく動作しています。しかし、私のアプリケーションのためのセットアッププロジェクトを作成すると、フォルダ構造が変化しており、与えられたパスはうまく動作しません。それは例外を見つけることができないファイルを投げています。どのようにこのパスの問題に取り組んでいますか?

+0

Environment.CurrentDirectoryをベースとして使用しますか? – smoksnes

+0

私はMySolution-> MyProject-> ResFiles-> xyz.xmlのパスを持っています。アプリケーションをインストールすると、パスはMyProject-> ResFiles-> xyz.xmlになります。 –

答えて

2

あなたはこの

var f = File.ReadAllText(System.IO.Path.GetDirectoryName(System.AppDomain.CurrentDomain.BaseDirectory) + @"/Files/file.txt"); 

試すことができます試みることができ、また、あなたは、ビルドアクションに変更し、出力ディレクトリにコピーする必要がenter image description here

0

あなたは、これらが

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) 

または

Path.Combine(AppDomain.CurrentDomain.BaseDirectory,@"ResFiles\xyz.xml") 
関連する問題