QA@IT

wpf ClickOnce

3286 PV

コンストラクターに記述。
string dirp = Directory.GetCurrentDirectory();
string tinf=dirp+@"テキスト.txt"
StreamReader sr = new StreamReader(tinf,true);
・・・・・・・・
これをClickOnceでCDに発行しインストールするとエラーになります。
原因は、テキストファイルへのパスが正しくないからです。正しいパスの取得方法はどうなるでしょうか。

回答

パス区切り文字を考慮していないからではないでしょうか。

目的のテキストファイルはそもそもどこの物を取得したいのかわかりませんが、exeと同じ場所のファイルを取りたい場合

string dirp = Directory.GetCurrentDirectory();
string tinf = System.IO.Path.Combine(dirp, @"テキスト.txt");
StreamReader sr = new StreamReader(tinf,true);

とすれば取れるのではないですか?

上記は作業パスが取得されると思うので、アプリケーション実行中にディレクトリを変更すると取れないかもしれません。
その場合は

var exeDir = new FileInfo(Assembly.GetExecutingAssembly().Location)
                    .Directory.FullName;
var filePath = System.IO.Path.Combine(exeDir, "テキスト.txt"));

で取ればいいと思います。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。