目录
配置IniHelper.cs
有对ini文件的增删改查操作:
①增加区字段,
②读取区字段,
③删除区,
④删除区字段
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
//以后默认放入的文件路径为启动文件所在的目录下
public class IniHelper
{
/// <summary>
/// 文件名,如 cameral.ini,文件存在debug下的config文件夹中
/// </summary>
public string FileName {
get; set; }
[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);
/// <summary>
/// 不存在文件夹则创建
/// </summary>
/// <param name="path">文件夹绝对路径</param>
private void CreateDirectoryIfNotExists(string path)
{
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}
/// <summary>
/// 写入数据
/// </summary>
/// <param name="Section">区</param>
/// <param name="Key">键</param>
/// <param name="Value">值</param>
public void SetValue(string Section, string Key, string Value)
{
string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"config",this.FileName);
CreateDirectoryIfNotExists(Path.GetDirectoryName(path));
WritePrivateProfileString(Section, Key, Value, path);
}
/// <summary>
/// 读取数据
/// </summary>
/// <param name="Section">区</param>
/// <param name="Key">键</param>
/// <returns>读取到的数据</returns>
public string GetValue(string Section, string Key)
{
string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory,"config",this.FileName);
CreateDirectoryIfNotExists(Path.GetDirectoryName(path));
StringBuilder temp = new StringBuilder(500); // 缓存空间--长度500
//下面的500指的是读取500个长度放到缓存空间temp中,换句话说temp的长度应当>=下面的500
int i = GetPrivateProfileString(Section, Key, "", temp, 500, path);
return temp.ToString();
}
/// <summary>
/// 删除区
/// </summary>
/// <param name="Section"></param>
public void DeleteSection(string Section)
{
string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "config", this.FileName);
CreateDirectoryIfNotExists(Path.GetDirectoryName(path));
WritePrivateProfileString(Section, null, null, path);
}
/// <summary>
/// 删除字段
/// </summary>
/// <param name="Section"></param>
/// <param name="Key"></param>
public void DeleteKey(string Section, string Key)
{
string path = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "config", this.FileName);
CreateDirectoryIfNotExists(Path.GetDirectoryName(path));
WritePrivateProfileString(Section, Key, null, path);
}
}
下载
链接: 下载