コンソールアプリで実行ファイルのパスの取得

C#でアプリケーションの存在するディレクトリのパスを取得するには以下のプロパティを利用する。

System.Windows.Forms.Application.StartupPath;

コンソールアプリではデフォルトではSystem.Windows.Formsが利用できない。
これを回避するには参照設定で"System.Windows.Forms"を参照設定に加えればいいらしいのだが、パスの参照をするだけでこれを加えるのはなんだか微妙。

と、いうことで"System.Windows.Forms"を利用せずに実行ファイルのディレクトリのパスを取得する方法。

FileInfo exePath = new FileInfo(Environment.CommandLine.Replace( "\"", "" ));
// "C:\foo\bar\baz.quux -i "C:\hoge\fuga\quux"の場合
// exePathには「C:\foo\bar\baz.quux -i C:\hoge\fuga\piyo」が入る

Console.WriteLine( exePath.Directory );
// この場合の出力は「C:\foo\bar」となる

参考

startuppathについて

2007/10/08(月)C#参考書候補

VCの次はC#ですか*1。とりあえず言語仕様とか概念とかほとんど知らないので、参考書を買うことにする。

具体的なプログラム作成を例にするタイプ*2よりは、言語仕様やその言語における概念に重点を置いて書かれている本*3の方が好きなので、そういったタイプの本を調査してみた。

こういった参考書は手に取ってみないと自分に合うかどうか判らないので、近いうちに大きな書店に行かないとな。と、ここまで書いて業務時間中に調べれば良かったとちょっと後悔。

*1 : その次はVBらしい(予定)。いったい何所に向かっているのだろうか>自分 そこにRomanはあるのだろうか

*2 : この手の本ってひたすらソースが誌面の大半を占めていて、全体としては中身がない本が多いんですよね。

*3 : 言語における考え方とか、基本的な関数の使い方を押さえておけば後はヘルプを見ながらなんとかすることが出来る。と、思う。全くのプログラミング未経験者でもないし。

C#エッセンシャルズ 第2版

#asin: is not allow
\2,730
とりあえずC#の基本を学ぶ上でのとっかかりにしやすそうな本。ただ、発行年が2002年なのでC#1.0(1.1?)ベースなのだろうなぁ。

Visual C#.NET逆引き大全 500の極意

#asin: is not allow
\2,730
VC.NET版は購入したけど、概念的な部分の説明くらいしか役に立たなかったなぁ。基本を押さえる上ではまあまあ良かったけど。

Visual C# 2005逆引きクイックリファレンス Windows XP/Vista対応

#asin: is not allow
\2,940
C# 2005に対応した本。

速効解決!逆引きハンドブックVisual C#

#asin: is not allow
\2,940
C#2.0 (.NET FW2.0)対応。