WPF INI文件的创建与使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chuangand/article/details/48056015
      

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文件成功了!!!

猜你喜欢

转载自blog.csdn.net/chuangand/article/details/48056015