zoukankan      html  css  js  c++  java
  • 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();
          }
      }
    慎于行,敏于思!GGGGGG
  • 相关阅读:
    Android框架之Volley与Glide
    美团点餐—listview内部按钮点击事件
    Android之MaterialDesign应用技术2-仿支付宝上滑搜索框缓慢消失
    Android之MaterialDesign应用技术
    Android之Bmob移动后端云服务器
    Java设计模式总汇二---MVC、中介者设计模式
    Java设计模式总汇一 (适配器、单例、静态代理、简单工厂设计模式)
    Android数据绑定技术二,企业级开发
    再次强调完成的定义(DoD)
    在远程 CSM 课程中体验线上工作坊
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/4062749.html
Copyright © 2011-2022 走看看