ini 환경 파일을 간단하게 만드는 방법을 알아본다.
1. initUtil 이라는 클래스를 만든 후 ini 관련 메소드를 구성한다.(iniUtil.cs)
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
namespace INI{
class iniUtil
{
private string iniPath;
public iniUtil(string path)
{
this.iniPath = path; //INI 파일 위치를 생성할때 인자로 넘겨 받음
}
[DllImport(“kernel32.dll”)]
private static extern int GetPrivateProfileString( // GetIniValue 를 위해
String section,
String key,
String def,
StringBuilder retVal,
int size,
String filePath);
[DllImport(“kernel32.dll”)]
private static extern long WritePrivateProfileString( // SetIniValue를 위해
String section,
String key,
String val,
String filePath);
// INI 값을 읽어 온다.
public String GetIniValue(String Section, String Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, “”, temp, 255, iniPath);
return temp.ToString();
}
// INI 값을 셋팅
public void SetIniValue(String Section, String Key, String Value)
{
WritePrivateProfileString(Section, Key, Value, iniPath);
}
}
}
2. 필요한 곳에서 만들어 놓았던 iniUtil의 객체를 생성한 후 작성한다.
//현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
FileInfo exefileinfo = new FileInfo(Application.ExecutablePath);
string path = exefileinfo.Directory.FullName.ToString() //프로그램 실행되고 있는데 path 가져오기
string fileName = @”\config.ini”; //파일명
//만약 현재 실행 되는 경로가 아닌 특정한 위치를 원한다면 위에 과정 상관없이 바로 경로셋팅 해 주면 된다. (예: c:\config.ini)
string filePath = path+fileName; //ini 파일 경로
iniUtil ini = new iniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
/*
값 셋팅하기
첫번째 인자: 섹션값(대분류로 생각하면 편함)
두번째 인자: 키값(구분값으로 생각)
세번째 인자: 실제 들어갈 값
*/
ini.SetIniValue(“MSSQL”, “serverIP”, “서버아이피”);
ini.SetIniValue(“MSSQL”, “user”, “아이디”);
ini.SetIniValue(“MSSQL”, “password”, “패스워드”);
/*
값 가져와 사용하기
첫번째 인자: 섹션값(대분류로 생각하면 편함)
두번째 인자: 키값(구분값으로 생각)
*/
string serverIP = ini.GetIniValue(“MSSQL”, “serverIP”);
string user = ini.GetIniValue(“MSSQL”, “user”);
string password = ini.GetIniValue(“MSSQL”, “password”);
3. 실제 config.ini 파일에는 아래처럼 저장 된다.
[MSSQ] //첫번째 인자로 들어온 섹션값(대분류)
serverIP=서버아이피
user=아이디
password=패스워드
출처) http://nicebury.tistory.com/46