C#操作ini文件

首先了解什么是ini文件 什么是ini

了解ini文件的格式:

[section]

key=value

以上为一个ini文件的基本格式,section 是段落名,key是键名,value为键所对应的值。英文分号后面所有内容为注释内容,例如

;这是一条注释

 


[Company]
CompanyName=x
CompanyAddress=zhongguo

以上为本次讲解使用的一个简单ini文件。

创建一个ini文件的操作类,

public static class IniFunc
    {
        /// 
        /// 获取值
        /// 
        /// 段落名
        /// 键名
        /// 读取异常是的缺省值
        /// 键名所对应的的值,没有找到返回空值
        /// 返回值允许的大小
        /// ini文件的完整路径
        /// 
        [DllImport("kernel32.dll")]
        private static extern int GetPrivateProfileString(
            string section,
            string key,
            string defval,
            StringBuilder retval,
            int size,
            string filepath);

        /// 
        /// 写入
        /// 
        /// 需要写入的段落名
        /// 需要写入的键名
        /// 写入值
        /// ini文件的完整路径
        /// 
        [DllImport("kernel32.dll")]
        private static extern int WritePrivateProfileString(
            string section,
            string key,
            string val,
            string filepath);


        /// 
        /// 获取数据
        /// 
        /// 段落名
        /// 键名
        /// 没有找到时返回的默认值
        /// ini文件完整路径
        /// 
        public static string getString(string section, string key, string def, string filename)
        {
            StringBuilder sb = new StringBuilder(1024);
            GetPrivateProfileString(section, key, def, sb, 1024, filename);
            return sb.ToString();
        }

        /// 
        /// 写入数据
        /// 
        /// 段落名
        /// 键名
        /// 写入值
        /// ini文件完整路径
        public static void writeString(string section, string key, string val, string filename)
        {
            WritePrivateProfileString(section, key, val, filename);
        }
    }

注释已经写得足够明白,不做过多解释。

 

调用方法

            string filename = @"D:\Program Files\y\test\ConsoleApplication1\Config.ini";
            string name = IniFunc.getString("Company", "CompanyName", "", filename);
            Console.WriteLine("公司名称:{0}", name);
            Console.WriteLine("现在修改公司名称!");
            string company = Console.ReadLine();
            IniFunc.writeString("Company", "CompanyName", company, filename);
            name = IniFunc.getString("Company", "CompanyName", "", filename);
            Console.WriteLine("公司名称:{0}", name);
            Console.Read();

 几个注意事项:

  1. ini文件的路径必须使用绝对路径。
  2. ini文件首行留空,否则无法获取到值,原因未知。


 

你可能感兴趣的:(c#)