INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。这种配置文件的文件扩展名多为INI,故名。 INI是英文“初始化”(initialization)的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。 ----摘自百度百科 最近做项目的时候就遇到对ini文件的使用。因为C#所使用的.NET框架下的公共类库并没有提供直接操作INI文件的类,调用API函数是比较理想的方法。
首先,建立一个WPF项目,加上如图的控件。
textBox用来显示读取INI文件里面的信息。
建立一个INI.cs文件,用来写程序。
public class INI
{
/// <summary>
/// 写操作
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string value, string filePath);
/// <summary>
/// 读操作
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="def">未读取到的默认值</param>
/// <param name="retVal">读取到的值</param>
/// <param name="size">大小</param>
/// <param name="filePath">路径</param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/// <summary>
/// 读ini文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="defValue">未读取到值时的默认值</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
public static string ReadIni(string section, string key)
{
string IniFilePath = @"F:\Setting.ini";
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(section, key, "", temp, 255, IniFilePath);
return temp.ToString();
}
/// <summary>
/// 写入ini文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
public static void WriteIni(string section, string key, string value)
{
string IniFilePath = @"F:\Setting.ini";
WritePrivateProfileString(section, key, value, IniFilePath);
}
/// <summary>
/// 删除节
/// </summary>
/// <param name="section">节</param>
/// <param name="filePath"></param>
/// <returns></returns>
public static long DeleteSection(string section)
{
string IniFilePath = @"F:\Setting.ini";
return WritePrivateProfileString(section, null, null, IniFilePath);
}
/// <summary>
/// 删除键
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
public static long DeleteKey(string section, string key)
{
string IniFilePath = @"F:\Setting.ini";
return WritePrivateProfileString(section, key, null, IniFilePath);
}
}
然后,添加Button的触发事件
<span style="white-space:pre"> </span> //增加
private void button1_Click(object sender, RoutedEventArgs e)
{
INI.WriteIni("section1", "key1", "勇气呀");
INI.WriteIni("section1", "key2", "智慧呀");
INI.WriteIni("section1", "key3", "坚持呀");
INI.WriteIni("section1", "key4", "永远呀");
INI.WriteIni("section2", "key5", "智慧呀");
INI.WriteIni("section2", "key6", "坚持呀");
INI.WriteIni("section2", "key7", "果敢呀");
INI.WriteIni("section2", "key8", "才能呀");
}
//显示框
private void button2_Click(object sender, RoutedEventArgs e)
{
textBox1.Text = INI.ReadIni("section1", "key1");
textBox2.Text = INI.ReadIni("section1", "key2");
textBox3.Text = INI.ReadIni("section2", "key5");
textBox4.Text = INI.ReadIni("section2", "key6");
}
//删除值
private void button3_Click(object sender, RoutedEventArgs e)
{
INI.DeleteSection("section1");
}
//删除键
private void button4_Click(object sender, RoutedEventArgs e)
{
INI.DeleteKey("section2", "key5");
}
点击增加按钮,会在设置目录下生成Setting.ini文件
文件内容:
是预先设置的内容。
点击读取,从INI文件中读取,显示到textBox里面:
点击删除值后,再点击读取,效果如图:
点击删除键,再点击增加按钮,效果如图:
读取INI文件成功了!!!
---------------------本文来自 chuangand 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/chuangand/ ... 015?utm_source=copy
|