実行アプリのディレクトリパスを取得する
exeを実行した時に、exeと同じフォルダに入ったファイルを読み取るこれをコードにした時、ファイルのパスが必要になるんだけども。。ちなみにexeとファイルは他のPCでも使う予定どうやってファイルのパスをとろうか相対パスから絶対パスに変換してみる // 相対パスから絶対パスを取得する string FilePath = System.IO.Path.GetFullPath(@"..\..\Hoge.txt");これだとexeの入ったフォルダの中を探してくれないwindowsの作業フォルダの中を見に行ってしまった。。。ならば探す場所を指定してやろうじゃないか // カレントディレクトリを「C:\Hoge\」に設定する System.IO.Directory.SetCurrentDirectory(@"C:\Hoge\");いやいや、これだと「exeとファイルは絶対「C:\Hoge\」に入れてね~」と伝えなきゃいけないもし違う場所に保存して実行すると、、、エラーの際のデフォルト値しか出てこなくなるそれに開始フォルダをいじってPCが予期しない動きをするかも・・・違うもっと楽に使えるものを作りたいのだ~て訳で見つかったのが「Application.ExecutablePath」実行アプリのパス(実行アプリのファイル名を含む)をWindowsのパス形式で取得できる System.Windows.Forms.Application.ExecutablePath // C:\Hoge\HogeApplication.exe てな感じこれだとexeのファイル名も入ってしまうので使ったのは「Application.StartupPath」実行アプリのファイルが入っているディレクトリ名を取得できる System.Windows.Forms.Application.StartupPath // C:\Hoge てな感じ最終的にはこの2行でおさまった~ // HogeApplication.exeのディレクトリパス string appPath = Application.StartupPath; // 読み取るファイル名を末尾にくっつけてパス成形 string FilePath = Path.Combine(appPath, "Hoge.txt");