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
  • 相关阅读:
    mysql无法启动的结果问题解决
    pm2日志管理插件
    运维常用shell脚本之日志清理
    Centos7.x for aarch64 下载地址
    linux下使用openssl生成https的crt和key证书
    rsync+inotify百万级文件实时同步
    nginx访问url内容过滤
    docker-compose部署zabbix4.2.5
    postgresql从库提升为主库
    Nginx+keepalived 高可用双机热备(主从模式)
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/4062749.html
Copyright © 2011-2022 走看看