软件里需要读取一些初始化信息,
决定用ini来做,简单方便。
于是查了一写代码,自己写了一个帮助类。
INI文件格式是某些平台或软件上的配置文件的非正式标准,
以节(section)和键(key)构成,常用于微软Windows操作系统中。
这种配置文件的文件扩展名多为INI,故名INI。
INI是英文“初始化”(initialization)的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。
帮助类:
- 1 using System;
- 2 using System.Collections.Generic;
- 3 using System.Linq;
- 4 using System.Text;
- 5 using System.Runtime.InteropServices;
- 6 using System.IO;
- 7
- 8 namespace ConsoleApplication1
- 9 {
- 10 class INIhelp
- 11 {
- 12 [DllImport("kernel32")]
- 13 private static extern long WritePrivateProfileString(string section, string key, string val, string filepath);
- 14 [DllImport("kernel32")]
- 15 private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath);
- 16
- 17 //ini文件名称
- 18 private static string inifilename = "Config.ini";
- 19 //获取ini文件路径
- 20 private static string inifilepath = Directory.GetCurrentDirectory() + "\\" + inifilename;
- 21
- 22 public static string GetValue(string key)
- 23 {
- 24 StringBuilder s = new StringBuilder(1024);
- 25 GetPrivateProfileString("CONFIG",key,"",s,1024,inifilepath);
- 26 return s.ToString();
- 27 }
- 28
- 29
- 30 public static void SetValue(string key,string value)
- 31 {
- 32 try
- 33 {
- 34 WritePrivateProfileString("CONFIG", key, value, inifilepath);
- 35 }
- 36 catch (Exception ex)
- 37 {
- 38 throw ex;
- 39 }
- 40 }
- 41 }
- 42 }
我将 section 写死在代码中因为我是用不到其他的 section 的,各位有需要自己改一下方法参数就可以了。
调用:
- 1 static void Main(string[] args)
- 2 {
- 3 INIhelp.SetValue("data", "abcdefg");
- 4 INIhelp.SetValue("哈哈", "123456");
- 5 INIhelp.SetValue("呵呵", "123456");
- 6 INIhelp.SetValue("数据库", "123456");
- 7 INIhelp.SetValue("123", "123456");
- 8 Console.WriteLine("写入完成");
- 9 Console.ReadLine();
- 10
- 11 string s = INIhelp.GetValue("data");
- 12 Console.WriteLine(s);
- 13 string a = INIhelp.GetValue("哈哈");
- 14 Console.WriteLine(a);
- 15 string b = INIhelp.GetValue("123");
- 16 Console.WriteLine(b);
- 17 Console.ReadLine();
- 18 }
结果: