たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

実行可能ファイルのパス

#66
#65の続き。で、次の問題は「app.exe.config の保存先」。

ま、System.Configuration 名前空間のクラスでアプリ構成すりゃいいんだが、わざわざクラス作ってやってる(←やっぱりMSDNのサンプルを参考に)もんだから、
単純に相対パスで保存すると、おかしな所に保存されることがある、ということになる。

例えば

スタート > 最近使ったファイル > マイドキュメント > …… > bin > Debug > app.exe

からアプリケーションを実行した時。
これを自分は結構やるので、すると毎回

C:/Documents and Settings/User/app.exe.config

となるので、非常に困る!
解決するには実行ファイルの絶対パスを獲得するしかない。
で、探すと ( ..)φ……

1. System.Environment.CurrentDirectory プロパティ
2. Application.ExecutablePath プロパティ
3. Application.StartupPath プロパティ

と候補が。

System.Environment.CurrentDirectory プロパティは、これは相対パスでやった時と同じ結果に。しかもこれに"/" を結合しないとディレクトリの中に保存されない。

Application.ExecutablePath プロパティは、こりゃ完全に実行ファイルのパスそのもの("D:/…/Debug/app.exe")を返してくる。これじゃ面倒くさい。

Application.StartupPath プロパティは、ちゃんとディレクトリのパス("D:/…/Debug")で返してくる。うん、これだ。これもやっぱり"/" はいるけど。
で、実際成功。これでDocuments and Settings の所に保存されることもない。


つか、リファレンス内のApplication.ExecutablePath プロパティとApplication.StartupPath プロパティの説明が完全に

アプリケーションを開始した実行可能ファイルのパスを取得します。
プロパティ値:アプリケーションを開始した実行可能ファイルのパス。

で同じだったぞ。まぁVS2003とかでは変わってるかもしれんが。

コメント


コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:  http://takojelly.blog2.fc2.com/tb.php/66-2c877c9d
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。