A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马