ディレクトリをexe直下と戻すには?

解決


弥生  2008-11-10 15:51:45  No: 145397  IP: 192.*.*.*

調べながら動作確認と修正を行っております。
実行ファイル直下のファイルを使用しているのですが、データ出力を
デスクトップなどに行うとディレクトリがデスクトップに変更されて
いるようで?続けて別の処理が行えません。
Application.StartupPathを追加することで処理は行えているようですが
クイックウォッチで確認するとMyApplicationのメンバではありません。
と表示されており、できれば違う対応としたいのです。

ファイル出力後など、ディレクトリを実行ファイル直下に戻す方法などありますか?
ご存じの方、よろしくお願いいたします。

編集 削除
我龍院  2008-11-10 18:14:46  No: 145398  IP: 192.*.*.*

Environment.CurrentDirectory = Application.StartupPath
これじゃあ駄目?

編集 削除
弥生  2008-11-10 19:03:57  No: 145399  IP: 192.*.*.*

我龍院さん
Environment.CurrentDirectory = Application.StartupPathを追加することで
思っていた動作となりました。
助かりました。ありがとうございます。

編集 削除
aetos  2008-11-11 11:23:08  No: 145400  IP: 192.*.*.*

データ出力の前段階で SaveFileDialog を使っているなら、RestoreDirectory プロパティでカレントディレクトリを元に戻すことができます。

それはそれとして、カレントディレクトリはアプリ起動直後でも exe の置いてあるフォルダと同じとは限りませんので、ファイルアクセスは絶対パスで行うのが基本です。
例えば、単に "Hoge.txt" と書いてアクセスするのではなく、Path.Combine( Application.StartupPath, "Hoge.txt" ) としてパスを組み立ててやるべきでしょう。

編集 削除