C#にてINIファイルの読み込み・書き込み方法を説明します。
INIファイルは、単純なテキストファイルなので、テキストエディタで編集することも出来ます。
自作のアプリケーションの設定ファイルなどにも使用することも出来ます。
ここでは、Win32APIを使用して読み書きする方法を記載します。
INIクラス IniFilesクラス を作成して、それを呼び出す方法で説明します。
INIファイル読み込み・書き込みクラス
KERNEL32.DLLを読み込み、APIをコールすることにより読み書きします。
/// <summary> /// INIファイルの読み書きクラス /// </summary> class IniFiles { [DllImport("KERNEL32.DLL")] private static extern uint GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName); [DllImport("KERNEL32.DLL")] private static extern uint GetPrivateProfileInt( string lpAppName, string lpKeyName, int nDefault, string lpFileName); [DllImport("KERNEL32.DLL")] private static extern uint WritePrivateProfileString( string lpAppName, string lpKeyName, string lpString, string lpFileName); /// <summary> /// INIファイルから値を取得する /// </summary> /// <param name="lpSection">セッション名称</param> /// <param name="lpKeyName">キー名称</param> /// <param name="lpFileName">INIファイル名</param> /// <returns></returns> public static string GetIniString(string lpSection, string lpKeyName, string lpFileName) { System.Text.StringBuilder strValue = new System.Text.StringBuilder(1024); uint sLen = GetPrivateProfileString(lpSection, lpKeyName, "", strValue, 1024, lpFileName); return strValue.ToString(); } /// <summary> /// INIファイルに値を書き込む /// </summary> /// <param name="lpSection">セッション名称</param> /// <param name="lpKeyName">キー名称</param> /// <param name="lpValue">セットする値</param> /// <param name="lpFileName">INIファイル名</param> /// <returns></returns> public static bool PutIniString(string lpSection, string lpKeyName, string lpValue, string lpFileName) { long result = WritePrivateProfileString(lpSection, lpKeyName, lpValue, lpFileName); return result != 0; } }
呼び出し側
private void button1_Click(object sender, EventArgs e) { string FilePath = @"C:\work\MyFile.ini"; string s = IniFiles.GetIniString("Section1", "KEY1", FilePath); IniFiles.PutIniString("Section2", "KEY1", "AAAA", FilePath); }