• 00
  • :
  • 00
  • :
  • 00

C#操作INI

/// <summary>
  /// 操作INI文件类 
  /// </summary>
  public class IniFile
  {
      const int DATA_SIZE = 1024;

      private string _path; //INI档案名 
      public string IniPath { get { return _path; } set { _path = value; } }

      [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
      public struct STRINGBUFFER
      {
          [MarshalAs(UnmanagedType.ByValTStr, SizeConst = DATA_SIZE)]
          public string szText;
      }

      //读写INI文件的API函数 
      [DllImport("kernel32", CharSet = CharSet.Auto)]
      private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

      [DllImport("kernel32", CharSet = CharSet.Auto)]
      private static extern int GetPrivateProfileString(string section, string key, string def, out STRINGBUFFER retVal, int size, string filePath);

      //类的构造函数,传递INI档案名 
      public IniFile(string INIPath)
      {
          _path = INIPath;
          if (!File.Exists(_path)) CreateIniFile();
      }
    

public IniFile()
{
_path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "/config.ini");
if (!File.Exists(_path)) CreateIniFile();
}

 

//写INI文件 
      public void IniWriteValue(string Section, string Key, string Value)
      {
          WritePrivateProfileString(Section, Key, Value, this._path);
      }

      //读取INI文件指定项目的数据 
      public string IniReadValue(string Section, string Key)
      {
          int i;
          STRINGBUFFER RetVal;
          i = GetPrivateProfileString(Section, Key, null, out RetVal, DATA_SIZE, this._path);
          string temp = RetVal.szText;
          return temp.Trim();
      }

      //读取INI文件指定项目的数据 
      public string IniReadValue(string Section, string Key, string defaultValue)
      {
          int i;
          STRINGBUFFER RetVal;
          i = GetPrivateProfileString(Section, Key, null, out RetVal, DATA_SIZE, this._path);
          string temp = RetVal.szText;
          return temp.Trim() == "" ? defaultValue : temp.Trim();
      }

      /// <summary>
      /// 创建INI文件
      /// </summary>
      public void CreateIniFile()
      {

var dir = Path.GetDirectoryName(_path);
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);


          StreamWriter w = File.CreateText(_path);
          w.Write("");
          w.Flush();
          w.Close();
      }
  }

 

posted @ 2014-10-30 15:11  Garson_Zhang  阅读(209)  评论(0编辑  收藏  举报