C# INI本地文件读写工具类IniFileTool.cs
作者:C/S框架网|www.cscode.ne  发布日期:2021/05/09 13:11:34
  C# INI本地文件读写工具类IniFileTool.cs



C# Code:

/// <summary>
/// 操作INI文件类
/// </summary>
public class IniFileTool
{
  
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
= 1024)]
    
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 IniFileTool(string INIPath)
  {
    _path
= INIPath;
    
if (!File.Exists(_path)) CreateIniFile();
  }
  
  
/// <summary>
  
/// 写INI文件
  
/// </summary>
  
/// <param name="Section"></param>
  
/// <param name="Key"></param>
  
/// <param name="Value"></param>
  
public void IniWriteValue(string Section, string Key, string Value)
  {
    WritePrivateProfileString(Section, Key, Value,
this._path);
  }
  
  
/// <summary>
  
/// 读取INI文件指定关键字的值
  
/// </summary>
  
/// <param name="Section"></param>
  
/// <param name="Key"></param>
  
/// <returns></returns>
  
public string IniReadValue(string Section, string Key)
  {
    
int i;
    STRINGBUFFER RetVal;
    i
= GetPrivateProfileString(Section, Key, null, out RetVal, 1024, this._path);
    
string temp = RetVal.szText;
    
return temp.Trim();
  }
  
  
/// <summary>
  
/// 读取INI文件指定关键字的值
  
/// </summary>
  
/// <param name="Section"></param>
  
/// <param name="Key"></param>
  
/// <param name="defaultValue"></param>
  
/// <returns></returns>
  
public string IniReadValue(string Section, string Key, string defaultValue)
  {
    
int i;
    STRINGBUFFER RetVal;
    i
= GetPrivateProfileString(Section, Key, null, out RetVal, 1024, this._path);
    
string temp = RetVal.szText.Trim();
    
return String.IsNullOrEmpty(temp) ? defaultValue : temp;
  }
  
  
/// <summary>
  
/// 创建INI文件
  
/// </summary>
  
public void CreateIniFile()
  {
    StreamWriter w
= File.CreateText(_path);
    w.Write(
"");
    w.Flush();
    w.Close();
  }
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761



C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


上一篇 下一篇