NET Framework 类库未提供读写ini文件的相应类不过可以使用WinAPI来处理INI文件的读写代码很简单如下
首先有两个API函数需放在你的class中且只能如此放在method或(class外namespace内)都会出现编译错误
using SystemRuntimeInteropServices;
[DllImport(kernel)]
private static extern long WritePrivateProfileString(string sectionstring keystring valstring filePath);
[DllImport(kernel)]
private static extern long GetPrivateProfileString(string sectionstring keystring defStringBuilder retValint sizestring filePath);
WritePrivateProfileString方法说明
功能将信息写入ini文件
返回值long如果为则表示写入失败反之成功
参数(section):写入ini文件的某个小节名称(不区分大小写)
参数(key):上面section下某个项的键名(不区分大小写)
参数(val):上面key对应的value
参数(filePath):ini的文件名包括其路径(example: c:\configini)如果没有指定路径仅有文件名系统会自动在windows目录中查找是否有对应的ini文件如果没有则会自动在当前应用程序运行的根目录下创建ini文件
ini文件结构Example
[JXCDB] 小节名(section)
server= server是JXCDB下的某个键是server键的值(下同)
name=sa
pwd=
dbName=JXC
GetPrivateProfileString方法使用说明
功能从ini文件中读取相应信息
返回值返回所取信息字符串的字节长度
参数(section):某个小节名(不区分大小写)如果为空则将在retVal内装载这个ini文件的所有小节列表
参数(key):欲获取信息的某个键名(不区分大小写)如果为空则将在retVal内装载指定小节下的所有键列表
参数(def):当指定信息未找到时则返回def可以为空
参数(retVal):一个字串缓沖区所要获取的字符串将被保存在其中其缓沖区大小至少为size
参数(size):retVal的缓沖区大小(最大字符数量)
参数(filePath):指定的ini文件路径如果没有路径则在windows目录下查找如果还是没有则在应用程序目录下查找再没有就只能返回def了
详细使用Example
首先先创建一个ini文件并保存信息
WritePrivateProfileString(JXCDB server ApplicationStartupPath + \\JXC_Serverini);
WritePrivateProfileString(JXCDB name txtNameTextTrim() ApplicationStartupPath + \\JXC_Serverini);
WritePrivateProfileString(JXCDB pwdtxtPwdTextTrim() ApplicationStartupPath + \\JXC_Serverini);
WritePrivateProfileString(JXCDB DBName JXC ApplicationStartupPath + \\JXC_Serverini);
说明ApplicationStartupPath获取当前项目编译出的exe文件的绝对路径(不包含exe文件的文件名)
读取ini文件
StringBuilder stringBud = new StringBuilder();
GetPrivateProfileString(JXCDB server 还未设置服务器IP stringBud ApplicationStartupPath + \\JXC_Serverini);
此时所读取的server键对应的值已被保存在stringBud中只需:
return stringBudToString();
InI基本应用就这样很简单吧