在写一个控制台程序的时候遇到需要用一个.ini文件来设置一些属性,便于用户更改,就需要让程序读取这个文件的数据
ini文件格式如下
[section]
key=value
例如:
[section]
TimeON=3000000
这里我需要设置时间停顿,程序无限循环的时间间隔
需要代码:
[DllImport("kernel32")]//返回0表示失败,非0为成功 private static extern long WritePrivateProfileString(string section,string key, string value,string filePath);//申明方法名,这个是写如内容
注:section表示一个区域块,key表示‘变量名’,value表示变量的值,filePath表示文件位置
[DllImport("kernel32")]//返回取得字符串缓冲区的长度private static extern long GetPrivateProfileString(string section,string key, string def,StringBuilder retVal,int size,string filePath);//读取内容
注:def表示如果未获取到值,则返回这个值作为替代,retVal就是获取到的数据
然后写一个更方便的方法
public static string ReadIniData(string Section,string Key,string NoText,string iniFilePath) {//读文件 if(File.Exists(iniFilePath))//判断文件是否存在 { StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath);//执行读文件方法 return temp.ToString(); } else { return String.Empty; } }然后主函数调用方法static void Main(string[] args) { string str = ReadIniData("section", "time", "500", "./test.ini"); Console.WriteLine(str); }就能显示出ini文件内指定位置的数据
写入数据和创建ini文件目前不需要try...cath,直接调用WritePrivateProfileString方法
WritePrivateProfileString("section","Time","3000","./Time.ini")"./Time.ini"文件位置是在项目里DeBug文件里面