C#에서 ini 환경 파일 쓰는 방법

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