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基本應用就這樣很簡單吧
From:http://tw.wingwit.com/Article/program/net/201311/13445.html