INI文件就是擴展名爲「ini」的文件。在Windows系統中,INI文件是不少,最重要的就是「System.ini」、「System32.ini」和「Win.ini」。該文件主要存放用戶所作的選擇以及系統的各類參數。用戶能夠經過修改INI文件,來改變應用程序和系統的不少配置。但自從Windows 95的退出,在Windows系統中引入了註冊表的概念,INI文件在Windows系統的地位就開始不斷下滑,這是由於註冊表的獨特優勢,使應用程序和系統都把許多參數和初始化信息放進了註冊表中。但在某些場合,INI文件還擁有其不可替代的地位。本文就來探討一下C#是如何對INI進行讀寫操做。函數
INI文件的結構ui
INI文件是一種按照特色方式排列的文本文件。每個INI文件構成都很是相似,由若干段落(section)組成,在每一個帶括號的標題下面,是若干個以單個單詞開頭的關鍵詞(keyword)和一個等號,等號右邊的就是關鍵字對應的值(value)。其通常形式以下:string
[Section1]it
KeyWord1 = Valuelio
KeyWord2 = Value2擴展
……配置
[Section2]file
KeyWord3 = Value3命名空間
KeyWord4 = Value4程序
C#操做INI文件使用的是Windows系統自帶Win32的API函數WritePrivateProfileString()和GetPrivateProfileString()函數。這二個函數都位於「kernel32.dll」文件中。
C#利用命名空間「System.Runtime.InteropServices」中的「DllImport」特徵類申明上面二個Win32的API函數:
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,string key,string val, string filePath);
參數說明:section:INI文件中的段落;key:INI文件中的關鍵字;
val:INI文件中關鍵字的數值;filePath:INI文件的完整的路徑和名稱。
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,string key, string def, StringBuilder retVal , int size , string filePath);
參數說明:section:INI文件中的段落名稱;key:INI文件中的關鍵字;
def:沒法讀取時候時候的缺省數值;retVal:讀取值;size:值的大小;
filePath:INI文件的完整路徑和名稱。
對INI文件進行寫操做,若是此時在INI文件中存在和要寫入的信息相同的段落名稱和關鍵字,將覆蓋此INI信息。
正確讀取INI的必須知足三個前提:INI文件的全路徑、段落名稱和關鍵字名稱。