如何在 C#中读写 INI 文件
INI 文件就是扩展名为“ini”的文件。在 Windows 系统中,INI 文件是很多,最重要的就
是“System.ini”、“ System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各
种参数。用户可以通 过修改 INI 文件, 来改变应用程 序和系统的很 多配置。但自 从
Windows 95 的退出,在 Windows 系统中引入了注册表的概念,INI 文件在 Windows 系统的
地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初
始化信息放进了注册表中。但在某些场合,INI 文件还拥有其不可替代的地位。本文就来
探讨一下 C#是如何对 INI 进行读写操作。
INI 文件的结构
INI 文件是一种按照特点方式排列的文本文件。每一个 INI 文件构成都非常类似,由若干段
落(section )组 成,在每个带 括号的标题下 面,是若干个 以单个单词开 头的关键词
(keyword)和一个等号,等号右边的就是关键字对应的值(value)。其一般形式如下:
[Section1]
KeyWord1 = Valuel
KeyWord2 = Value2
……
[Section2]
KeyWord3 = Value3
KeyWord4 = Value4
本文中介绍的程序设计及运行环境:
● 微软视窗 2000 高级服务器版
● .Net Framework SDK 正式版
C#和 Win32 API 函数
C#并不像 C++,拥有属于自己的类库。C#使用的类库是.Net 框架为所有.Net 程序开发
提供的一个共有的类库——.Net FrameWork SDK。虽然.Net FrameWork SDK 内容十分庞大,
功能也非常强大,但还不能面面俱到,至少它并没有提供直接操作 INI 文件所需要的相关
的类。在本文中,C#操作 INI 文件使用的是 Windows 系统自带 Win32 的 API 函数——
WritePrivateProfileString ( ) 和 GetPrivateProfileString ( ) 函 数 。 这 二 个 函 数 都 位 于
“kernel32.dll”文件中。
我们知道在 C#中使用的类库都是托管代码(Managed Code)文件,而 Win32 的 API 函数
所处的文件,都是非托管代码(Unmanaged Code)文件。这就导致了在 C#中不可能直接
使用这些非托管代码文件中的函数。好在.Net 框架为了保持对下的兼容,也为了充分利用
以前的资源,提出了互操作,通过互操作可以实现对 Win32 的 API 函数的调用。互操作不
仅适用于 Win32 的 API 函数,还可以用来访问托管的 COM 对象。C#中对 Win32 的 API 函
数的互操作是通过命名空间“System.Runtime.InteropServices”中的“DllImport”特征类来实现
的。它的主要作用是指示此属性化方法是作为非托管 DLL 的输出实现的。下面代码就是在