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

 更新时间:2020年6月25日 11:42  点击:1604

通常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,可以为你实现你想作的事情。

然后一切又变得简单了。

[!--infotagslink--]

相关文章

  • C# 向二进制文件进行读写的操作方法

    该例子使用 BinaryStream 和 BinaryWriter 对二进制文件进行读写操作先上代码再根据我理解的所分享给各位朋友...2020-06-25
  • C#中读写INI配置文件的方法

    这篇文章主要介绍了C#中读写INI配置文件的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C#读写共享文件夹的方法

    这篇文章主要为大家详细介绍了C#读写共享文件夹的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 解决docker挂载的目录无法读写问题

    这篇文章主要介绍了解决docker挂载的目录无法读写问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-19
  • Go语言使用读写OPC详解

    这篇文章主要介绍了Go语言使用读写OPC详解,图文讲解的很清晰,有感兴趣的同学可以学习下...2021-03-05
  • pytest配置文件pytest.ini的详细使用

    这篇文章主要介绍了pytest配置文件pytest.ini的详细使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-17
  • 使用Python文件读写,自定义分隔符(custom delimiter)

    这篇文章主要介绍了使用Python文件读写,自定义分隔符(custom delimiter),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-06
  • 分享C#操作内存读写方法的主要实现代码

    这篇文章介绍了C#操作内存读写方法的主要实现代码,下面让我们来看看具体的实例实现,有需要的朋友可以参考一下...2020-06-25
  • C#操作INI配置文件示例详解

    这篇文章主要为大家详细介绍了C#操作INI配置文件示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • R语言开发之CSV文件的读写操作实现

    这篇文章主要介绍了R语言开发之CSV文件的读写操作实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-06
  • python+tifffile之tiff文件读写方式

    今天小编就为大家分享一篇python+tifffile之tiff文件读写方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
  • 深入了解如何基于Python读写Kafka

    这篇文章主要介绍了深入了解如何基于Python读写Kafka,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-06
  • FtpHelper实现ftp服务器文件读写操作(C#)

    这篇文章主要为大家详细介绍了FtpHelper实现ftp服务器文件读写操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 设置php.ini 脚本超时方法

    设置php教程.ini 脚本超时方法 设置有二种 方法一,在php.ini里面设置 max_execution_time = 1800 ; 当前上面方法可以利用ini_set("选项","值"), ini_set(''max_e...2016-11-25
  • C#实现redis读写的方法

    这篇文章主要为大家详细介绍了C#实现redis读写的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • Zend系列产品的php.ini配置

    [Zend] ; zend optimizer & zend debugger 冲突,不能同时共存 ;;;;;;;;;;;;;;; zend optimizer ;;;;;;;;;;;;;;;;; ;zend_extension_manager.optimizer_ts="...2016-11-25
  • Python如何读写二进制数组数据

    这篇文章主要介绍了Python如何读写二进制数组数据,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-08-02
  • Go 并发读写 sync.map 详细

    阅读本文你将会明确 sync.Map 和原生 map +互斥锁/读写锁之间的性能情况。标准库 sync.Map 虽说支持并发读写 map,但更适用于读多写少的场景,因为他写入的性能比较差,使用时要考虑清楚这一点。...2021-10-15
  • C#读写操作app.config中的数据应用介绍

    C#读写操作app.config中的数据应用介绍;需要的朋友可以参考下...2020-06-25
  • php.ini禁止 phpinfo()不运行方法

    我们只要在php教程.ini增加 disable_functions =phpinfo php.ini里引入了一项功能disable_functions , 这个功能比较有用,可以用它禁止一些函数。比如在php.ini里加上...2016-11-25