欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

C#中读写INI文件的方法例子

时间:2021-08-14 08:30:04|栏目:.NET代码|点击:

通常C#使用基于XML的配置文件,不过如果有需要的话,比如要兼顾较老的系统,可能还是要用到INI文件。
但C#本身并不具备读写INI文件的API,只有通过调用非托管代码的方式,即系统自身的API才能达到所需的目的。

对应读写的方法分别为GetPrivateProfileString和WritePrivateProfileString。

GetPrivateProfileString中的各参数:
lpAppName ―― section的名称
lpKeyName ―― key的名称
lpDefault ―― 如果lpKeyName没有被找到的话,则将这个值复制到lpReturnedString中
lpReturnedString ―― 用于返回结果的值
nSize ―― lpReturnedString的字符长度
lpFileName ―― INI文件名

WritePrivateProfileString中的各参数:
lpAppName ―― section的名称
lpKeyName ―― key的名称
lpString ―― 与lpKeyName对应的值
lpFileName ―― INI文件名

实际代码如下所示:

复制代码 代码如下:

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace INIDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            WritePrivateProfileString("Demo", "abc", "123", "c:\\demo.ini");

            StringBuilder temp = new StringBuilder();
            GetPrivateProfileString("Demo", "abc", "", temp, 255, "c:\\demo.ini");
            Console.WriteLine(temp);

            Console.ReadLine();
        }

        [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
        private static extern bool WritePrivateProfileString(
            string lpAppName, string lpKeyName, string lpString, string lpFileName);

        [DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
        private static extern int GetPrivateProfileString(
            string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString,
            int nSize, string lpFileName);
    }
}


程序运行后INI文件中的内容为:

复制代码 代码如下:

[Demo]
abc=123

这是一种相对简单的方法,若是不想使用非托管方法,你也可以通过另一种比较麻烦的途径解决这个问题。

由于INI文件的格式是固定的,所以只要编写相应的解析程序就可以完成同样的读写功能,就是通常的字符串处理而已。

如果你不愿亲自动手的话,不要紧,已经有现成的程序――Cinchoo framework,可以为你实现你想作的事情。

然后一切又变得简单了。

上一篇:VS2019 找不到资产文件 “xxxx\obj\project.assets.json”运行NuGet包还原以生成此文件(解决方案)

栏    目:.NET代码

下一篇:ASP.NET Core 数据保护(Data Protection)中篇

本文标题:C#中读写INI文件的方法例子

本文地址:http://www.codeinn.net/misctech/166757.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有