在寫一個控制檯程序的時候遇到需要用一個.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文件裏面