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");
        }
    }
}

 

 参考:https://blog.csdn.net/yyl7727/article/details/92991366

posted @ 2021-04-02 14:23  masha2017  阅读(420)  评论(0编辑  收藏  举报