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
  • 相关阅读:
    fetch函数的使用-常见问题
    React的理解-入门指导
    Navicat for mysql 11.1.20激活
    sqlserver使用job删除过期备份文件
    sqlserver删除重复的数据
    提高code效率
    Wampserver红色橙色解决思路----端口冲突是关键
    java mvc框架系列总结ssh,ssm,servlet
    正则表达式入门案例C#
    SpringBoot开发之《兼容http和https同时访问时443端口被占用》
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/4062749.html
Copyright © 2011-2022 走看看