C#操作ini(讀取、寫入)
INI文件是一種按照特點方式排列的文本文件,該文件主要存放用戶所做的選擇以及系統的各種參數。用戶可以通過修改INI文件,來改變應用程序和系統的很多配置。但自從Windows 95的退出,在Windows系統中引入了注冊表的概念,INI文件在Windows系統的地位就開始不斷下滑,這是因為注冊表的獨特優點,使應用程序和系統都把許多參數和初始化信息放進了注冊表中。但在某些場合,INI文件還擁有其不可替代的地位。
INI文件的結構
INI文件是一種按照特點方式排列的文本文件。每一個INI文件構成都非常類似,由若干段落(section)組成,在每個帶括號的標題下面,是若干個以單個單詞開頭的關鍵詞(keyword)和一個等號,等號右邊的就是關鍵字對應的值(value)。其一般形式如下:
[Section1] KeyWord1 = Valuel KeyWord2 = Value2 ...... [Section2] KeyWord3 = Value3 KeyWord4 = Value4 |
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath);
注:
section:要讀取的段落名
key: 要讀取的鍵
defVal: 讀取異常的情況下的缺省值
retVal: key所對應的值,如果該key不存在則返回空值
size: 值允許的大小
filePath: INI文件的完整路徑和文件名





[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
注:
section: 要寫入的段落名
key: 要寫入的鍵,如果該key存在則覆蓋寫入
val: key所對應的值
filePath: INI文件的完整路徑和文件名



/// <summary>
/// 讀取INI文件
/// </summary>
/// <param name="section">項目名稱(如 [section] )</param>
/// <param name="skey">鍵</param>
/// <param name="path">路徑</param>
public string IniReadValue(string section, string skey, string path)
{
StringBuilder temp = new StringBuilder(500);
int i = GetPrivateProfileString(section, skey, "", temp, 500, path);
return temp.ToString();
}
/// <summary>
/// 寫入ini文件
/// </summary>
/// <param name="section">項目名稱</param>
/// <param name="key">鍵</param>
/// <param name="value">值</param>
/// <param name="path">路徑</param>
public void IniWrite(string section, string key, string value,string path)
{
WritePrivateProfileString(section, key, value, path);
}
測試:
//創建一個test.ini文件 並在A段落寫入 姓名(key)=wlj(value)
IniWrite("A","姓名","wlj","f:/test.ini")
IniWrite("B","姓名","WZQ","f:/test.ini")
test.ini文件的格式:
ini模版:
[A]
姓名=wlj
[B]
姓名=WZQ
//讀取test.ini文件中A 段落 鍵=姓名 的值
IniReadValue("A","姓名","f:/test.ini")
//讀取test.ini文件中A 段落中所有值
IniReadValue("A",null,"f:/test.ini")
//刪除test.ini文件中A 段落中所有鍵(沒有鍵,也就沒有值了)
IniWrite("A",null,null,"f:/test.ini")
//刪除test.ini文件中所有段落
IniWrite(null,null,null,"f:/test.ini")