人気ブログランキング | 話題のタグを見る
(.Net)ファイルダイアログを使うとカレントパスが変わる
例えば、下記のようなコードがあったとします。(C#)
File.WriteAllText("test.txt", "test");
OpenFileDialog dlg = new OpenFileDialog();
if (dlg.ShowDialog() == DialogResult.OK)
{
File.WriteAllText("test2.txt", "test");
}

普通に考えると、test.txt 、test2.txt 共に、exeと同じフォルダに保存されるような気がするんですが、そうではありません。
test2.txt は OpenFileDialog で開いたファイルのあるフォルダに保存されます。

カレントパスを確認する Directory.GetCurrentDirectory()System.Environment.CurrentDirectory プロパティで確認すると、パスが変わってることがよく理解できます。

ファイルダイアログ使ったとしても、exe と同じ場所に設定ファイル等保存したいときは、System.Windows.Forms.Application.StartupPath を使うといいかもしれません。
by jehoshaphat | 2010-02-12 22:12 | .Net開発


<< Windowsドメイン環境で他... (Linux)viで文字コード... >>