C#
PR

Windows CE は相対パスが使えないのでexeのある場所のパスを取得する方法

kawa.xxx
記事内に商品プロモーションを含む場合があります

Imagine Cup へ出場するためにWindows CE 上で動作するプログラムを書いているのですが、そのなかで自分が詰まって調べて調べて解決したことをまとめておきます。

環境

  • Windows Compact 7
  • .NET Compact Framework 3.5
  • C#

Windows CE系のOSは普通のWindowsと違って、相対パスが使えず、すべてを絶対パスで指定する必要があります。
で、exeのあるフォルダまでの絶対パスを取得する方法は次のコードで実現できました。

//.exe の絶対パスを取得する
String path = this.GetType().Assembly.GetModules()[0].FullyQualifiedName;
//最後から\を探してその位置を特定する
int en = path.LastIndexOf(@"\");
//文字列の最初から上記で取得した位置までの文字列を取得する
path = path.Substring(0, en);
ABOUT ME
kawa.xxx
都内のIT系企業に勤める会社員。自分の備忘録的なアウトプット用の場所で、ボルダリングやガシェッド、セキュリティ、カメラの話題が中心です。
記事URLをコピーしました