【个人使用.Net类库】(1)INI配置文件操作类_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 【个人使用.Net类库】(1)INI配置文件操作类

【个人使用.Net类库】(1)INI配置文件操作类

 2014/7/17 18:09:25  binghuojxj  程序员俱乐部  我要评论(0)
  • 摘要:开发接口程序时,对于接口程序配置的IP地址、端口等都需要是可配置的,而在WinApi原生实现了INI文件的读写操作,因此只需要调用WinApi中的方法即可操作INI配置文件,关键代码就是如何调用WinApi中的方法,如下所示:#region调用WinApi原方法声明[DllImport("kernel32")]privatestaticexternlongWritePrivateProfileString(stringsection,stringkey,stringval
  • 标签:.net 配置文件 使用 文件 net 配置 个人 操作

开发接口程序时,对于接口程序配置的IP地址、端口等都需要是可配置的,而在Win Api原生实现了INI文件的读写操作,因此只需要调用Win Api中的方法即可操作INI配置文件,关键代码就是如何调用Win Api中的方法,如下所示:

#region 调用WinApi 原方法声明
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string defVal, Byte[] retVal, int size, string filePath);
#endregion

具体代码如下所示(删除段落内容是参考苏飞论坛苏飞大神的):

class="code_img_closed" src="/Upload/Images/2014071718/0015B68B3C38AA5B.gif" alt="" />logs_code_hide('922d5e5d-8247-416f-af15-183fcaa4c8ef',event)" src="/Upload/Images/2014071718/2B1B950FA3DF188F.gif" alt="" />
using System;
using System.Text;
using System.Runtime.InteropServices;

namespace DotNetCommon.File
{
    
    /// <summary>
    /// 类说明:INI文件读写类
    /// 编码人:鞠小军
    /// 联系方式:binghuojxj@qq.com
    /// </summary>
    public class IniFileHelper
    {
        /// <summary>
        /// INI文件路径
        /// </summary>
        public string Path;
        /// <summary>
        /// 屏蔽空的构造函数
        /// </summary>
        public IniFileHelper()
        {
            throw new Exception("不允许使用空的构造函数!");
        }
        /// <summary>
        /// 构造函数,参数为INI文件路径 
        /// </summary>
        /// <param name="path">INI文件的路径</param>
        public IniFileHelper(string path)
        {
            Path = path;
        }
        #region 调用WinApi 原方法声明
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string defVal, Byte[] retVal, int size, string filePath);
        #endregion
        /// <summary>
        /// 读取INI文件
        /// </summary>
        /// <param name="section">段落</param>
        /// <param name="key"></param>
        /// <returns></returns>
        public string IniReadValue(string section, string key)
        {
            var temp = new StringBuilder(255);
            var i = GetPrivateProfileString(section, key, "", temp, 255, Path);
            return temp.ToString();
        }

        /// <summary>
        /// 写入INI文件
        /// </summary>
        /// <param name="section">段落</param>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public void IniWriteValue(string section, string key, string value)
        {
            WritePrivateProfileString(section, key, value, Path);
        }
        /// <summary>
        /// 清楚INI文件中所有的段落
        /// </summary>
        public void ClearAllSection()
        {
            IniWriteValue(null, null, null);
        }

        /// <summary>
        /// 清楚INI文件中指定段落内容
        /// </summary>
        /// <param name="section">段落</param>
        public void ClearSection(string section)
        {
            IniWriteValue(section, null, null);
        }

    }
}
View Code
发表评论
用户名: 匿名