using System;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
public class IniFile
{
//文件INI名称
public string Path;
///声明读写INI文件的API函数
[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);
//类的构造函数,传递INI文件名
public IniFile(string inipath)
{
//
// TODO: Add constructor logic here
//
Path = inipath;
}
//写INI文件
public void IniWriteValue(string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, Path);
}
/// <summary>
/// 读取INI文件指定的文件数据
/// </summary>
/// <param name="Section"></param>
/// <param name="Key"></param>
/// <param name="Path"></param>
/// <returns></returns>
public string IniReadValue(string Section, string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, "", temp, 255, Path);
return temp.ToString();
}
/// <summary>
/// 验证文件是否存在
/// </summary>
/// <returns>布尔值 </returns>
public bool ExistINIFile()
{
return File.Exists(this.Path);
}
}
namespace CStest
{
class Program
{
static void Main(string[] args)
{
IniFile file = new IniFile("./file.txt");
string section = "ocean";
string key = "rivers";
string val = "true";
file.IniWriteValue(section, key, val);
if (file.ExistINIFile()) {
string value;
value = file.IniReadValue(section, key);
Console.WriteLine(value);
Console.ReadKey();
}
}
}
}