C#中对ini文件简单操作举例

来源:互联网 发布:淘宝旗舰店男装排行榜 编辑:程序博客网 时间:2024/06/17 02:46

  在很多的程序中,我们都会看到有以.ini为后缀名的文件,这个文件可以很方便的对程序配置的一些信息进行设置和读

取,比如说我们在做一个程序后台登陆的时候,需要自动登录或者是远程配置数据库连接,及保存密码设置等等(在

Winform程序中),若在ASP.NET程序中有另外的解决方法,此C#操作INI文件的文章仅在winform程序中进行写入

和读取操作。

     下面简单举例:



using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.IO;using System.Windows.Forms;using System.Runtime.InteropServices;namespace Read_ini{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();                    }                    #region "声明变量"        /// <summary>        /// 写入INI文件        /// </summary>        /// <param name="section">节点名称[如[TypeName]]</param>        /// <param name="key">键</param>        /// <param name="val">值</param>        /// <param name="filepath">文件路径</param>        /// <returns></returns>        [DllImport("kernel32")]        private static extern long WritePrivateProfileString(string section, string key, string val, string filepath);        /// <summary>        /// 读取INI文件        /// </summary>        /// <param name="section">节点名称</param>        /// <param name="key">键</param>        /// <param name="def">值</param>        /// <param name="retval">stringbulider对象</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);                private string strFilePath = Application.StartupPath + "\\FileConfig.ini";//获取INI文件路径        private string strSec = "";//INI文件名                        #endregion        private void 保存配置信息ToolStripMenuItem_Click(object sender, EventArgs e)        {            try            {                     //根据INI文件名设置要写入INI文件的节点名称                    //此处的节点名称完全可以根据实际需要进行配置                    strSec = Path.GetFileNameWithoutExtension(strFilePath);//返回不具有扩展名的路径字符串的文件名                   // Console.WriteLine(" strFilePath=" + strFilePath);                   // Console.WriteLine(" strSec=" + strSec);                    WritePrivateProfileString(strSec, "Name", txtName.Text.Trim(), strFilePath);                    WritePrivateProfileString(strSec, "Password", txtPasword.Text.Trim(), strFilePath);                                                      MessageBox.Show("保存成功");                         }            catch(Exception ex)            {                MessageBox.Show(ex.Message.ToString());                        }        }        private void 导入配置信息ToolStripMenuItem_Click(object sender, EventArgs e)        {            if (File.Exists(strFilePath))//读取时先要判读INI文件是否存在            {                strSec = Path.GetFileNameWithoutExtension(strFilePath);                txtName.Text = ContentValue(strSec, "Name");                txtPasword.Text = ContentValue(strSec, "Password");                          }            else            {                MessageBox.Show("INI文件不存在");            }        }        /// <summary>        /// 自定义读取INI文件中的内容方法        /// </summary>        /// <param name="Section">键</param>        /// <param name="key">值</param>        /// <returns></returns>        private string ContentValue(string Section, string key)        {            StringBuilder temp = new StringBuilder(1024);            GetPrivateProfileString(Section, key, "", temp, 1024, strFilePath);            return temp.ToString();        }    }}




原创粉丝点击