はじめに
実行ファイルと同じディレクトリにある設定ファイルなどへアクセスしたいことがあります。
そのようなときの良くある書き方というものをまとめていきたいと思います。
もっと効率の良い方法があるとか、他の言語などの情報を、お待ちしています。
環境
Windows 7以降を対象とします。
C/C++
getModulePath.c
#include <windows.h>
#include <string.h>
#define BUF_SIZE 1024
TCHAR name[BUF_SIZE];
TCHAR* lastdelim;
GetModuleFileName(NULL, name, BUF_SIZE);
lastdelim = _tcsrchr(name, '\\');
*lastdelim = '\0';
C# / .NET
getModulePath.cs
using System;
using System.Reflection;
using System.IO;
Assembly assem = Assembly.GetExecutingAssembly();
String path = Path.GetDirectoryName(assem.Location);
python
getModulePath.py
os.path.dirname(os.path.abspath(__file__))