您的位置:首页 > 编程语言 > C#

C#中读写INI配置文件

2008-11-14 16:40 591 查看

C#中读写INI配置文件

作者:王波  来源:博客园  时间:2008-11-07  阅读:50 次  在作应用系统开发时,管理配置是必不可少的。例如数据库服务器的配置、安装和更新配置等等。由于Xml的兴起,现在的配置文件大都是以xml文档来存储。比如Visual Studio.Net自身的配置文件Mashine.config,Asp.Net的配置文件Web.Config,包括我在介绍Remoting中提到的配置文件,都是xml的格式。传统的配置文件ini已有被xml文件逐步代替的趋势,但对于简单的配置,ini文件还是有用武之地的。ini文件其实就是一个文本文件,它有固定的格式,节Section的名字用[]括起来,然后换行说明key的值:
[section]
key=value如数据库服务器配置文件:DBServer.ini[Server]
Name=localhost
[DB]
Name=NorthWind
[User]
Name=sa在C#中,对配置文件的读写是通过API函数来完成的,代码很简单:

using System;


using System.Text;


using System.IO;


using System.Runtime.InteropServices;




namespace PubOp


{


    public class OperateIniFile


    {


        #region API函数声明




        [DllImport("kernel32")]//返回0表示失败,非0为成功


        private static extern long WritePrivateProfileString(string section,string key,


            string val,string filePath);




        [DllImport("kernel32")]//返回取得字符串缓冲区的长度


        private static extern long GetPrivateProfileString(string section,string key,


            string def,StringBuilder retVal,int size,string filePath);






        #endregion




        #region 读Ini文件




        public static string ReadIniData(string Section,string Key,string NoText,string iniFilePath)


        {


            if(File.Exists(iniFilePath))


            {


                StringBuilder temp = new StringBuilder(1024);


                GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath);


                return temp.ToString();


            }


            else


            {


                return String.Empty;


            }


        }




        #endregion




        #region 写Ini文件




        public static bool WriteIniData(string Section,string Key,string Value,string iniFilePath)


        {


            if(File.Exists(iniFilePath))


            {


                long OpStation = WritePrivateProfileString(Section,Key,Value,iniFilePath);    


                if(OpStation == 0)


                {


                    return false;


                }


                else


                {


                    return true;


                }


            }


            else


            {


                return false;


            }


        }




        #endregion


    }


}
简单说明以下方法WriteIniData()和ReadIniData()的参数。Section参数、Key参数和IniFilePath不用再说,Value参数表明key的值,而这里的NoText对应API函数的def参数,它的值由用户指定,是当在配置文件中没有找到具体的Value时,就用NoText的值来代替。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: