虽然微软早已经建议在WINDOWS中用注册表代替INI文件(现在更流行的方法可能是XML文件)。但是在实际应用中,INI文件仍然有用武之地,尤其现在绿色软件的流行,越来越多的程序将自己的一些配置信息保存到了INI文件中。
INI文件是文本文件,由若干节(section)组成,在每个带括号的标题下面,是若干个关键词(key)及其对应的值(Value)
[Section]
Key=Value
C#中没有ini文件的读写类,需要自已封装一个。Windows提供了一系列读写ini文件的API
WritePrivateProfilexxx
GetPrivateProfilexxx
还有一系列取掉“Private”的API
WriteProfilexxx
GetProfilexxx
用于操作系统ini文件如win.ini,这里不作讨论
在PrivateProfile系列API中,仅使用WritePrivateProfileString和GetPrivateProfileString即可完成绝大多数操作
以下是一个ini文件操作类
1、调用参数中的ini文件路径,如果是相对路径,则会被定位到Windows目录
2、WritePrivateProfileString不需要捕获异常,或者说内置了异常处理,即使去读写一个没有相应文件的光盘驱动器,它也不会触发异常
3、如果目标ini、section或key不存在,WritePrivateProfileString都会自动创建之
4、WritePrivateProfileString的lpKeyName和lpString参数可以为null,lpKeyName为null会删除整个lpAppName指定的section,lpString为null,则会删除lpKeyName指定的key,注意,null和string.empty的效果是不同的
5、GetPrivateProfileString不需要异常捕获
6、nSize是一个in参数,GetPrivateProfileString也总是返回读取到的或调用时指定的缺省字符串长度
7、一个现象,value = 123,如果nSize为1,什么也不会返回,为2,返回一个字符
参考资料:
Registry Functions (Windows)
http://msdn.microsoft.com/en-us/library/ms724875(VS.85).aspx
C#读写INI文件
http://www.cppblog.com/twzheng/archive/2008/03/10/44086.html
使用C#操作ini文件
http://blog.csdn.net/dragontt/archive/2003/04/04/13970.aspx
用C#读写ini配置文件
http://www.cnblogs.com/zzyyll2/archive/2007/11/06/950584.html