using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; namespace CSFrameworkV5.Core { /// /// 操作INI文件类 /// public class IniFile { private string _path; //INI档案名 public string IniPath { get => _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); //读写INI文件的API函数 [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(); } /// /// 写INI文件 /// /// /// /// public void IniWriteValue(string Section, string Key, string Value) { WritePrivateProfileString(Section, Key, Value, _path); } /// /// 读取INI文件指定关键字的值 /// /// /// /// public string IniReadValue(string Section, string Key) { int i; STRINGBUFFER RetVal; i = GetPrivateProfileString(Section, Key, null, out RetVal, 1024, _path); var 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, 1024, _path); var temp = RetVal.szText.Trim(); return string.IsNullOrEmpty(temp) ? defaultValue : temp; } /// /// 创建INI文件 /// public void CreateIniFile() { var w = File.CreateText(_path); w.Write(""); w.Flush(); w.Close(); } } }