C#对ini文件的读取与写入
直接上代码
using System.IO; using System.Runtime.InteropServices; using System.Text; namespace UtilDemo.Util { /// <summary> /// 配置文件操作类 /// </summary> class iniUtil { /// <summary> /// 创建配置文件 /// </summary> /// <param name="filePath">配置文件路径</param> public static void createIni(string filePath) { if (!File.Exists(filePath)){ File.Create(filePath).Close(); } } /// <summary> /// 修改INI配置文件 /// </summary> /// <param name="section">段落名</param> /// <param name="key">关键字</param> /// <param name="val">值</param> /// <param name="filepath">文件完整路径</param> /// <returns></returns> [DllImport("kernel32")] public static extern long WritePrivateProfileString(string section, string key, string val, string filepath); /// <summary> /// 获取值 /// </summary> /// <param name="section">段落名</param> /// <param name="key">关键字</param> /// <param name="defval">读取异常时的缺省值</param> /// <param name="retval">键名所对应的的值,没有找到返回空值</param> /// <param name="size">返回值允许的大小</param> /// <param name="filepath">ini文件的完整路径</param> /// <returns></returns> [DllImport("kernel32.dll")] public static extern int GetPrivateProfileString(string section,string key,string defval,StringBuilder retval,int size,string filepath); } }
调用:
using System; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; using UtilDemo.Util; namespace UtilDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { iniUtil.createIni($"{Application.StartupPath}\\demo.ini"); } /// <summary> /// 读取配置文件 /// </summary> private void button1_Click(object sender, EventArgs e) { string filePath = $"{Application.StartupPath}\\demo.ini"; StringBuilder sb = new StringBuilder(); iniUtil.GetPrivateProfileString("Main_C", "VALUE", "", sb, 1024, filePath); MessageBox.Show(sb.ToString()); } /// <summary> /// 修改配置文件 /// </summary> private void button2_Click(object sender, EventArgs e) { iniUtil.WritePrivateProfileString("Main_C", "VALUE", "123123", $"{Application.StartupPath}\\demo.ini"); } } }