使用C#操作ini文件
原作:BLaZiNiX 翻译: dragontt
这个类,封装了Kernal32.dll 中提供的方法来操作ini文件。
简介:
这里创建了一个类,封装了KERNEL32.dll中提供的两个方法,用来操作ini文件。这两个方法是:WritePrivateProfileString
和 GetPrivateProfileString
。
需要引用的命名空间为:System.Runtime.InteropServices
和 System.Text
类源文件
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace Ini


{

/**//// <summary>
/// Create a New INI file to store or load data
/// </summary>
public class IniFile

{
public string path;
[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>
/// INIFile Constructor.
/// </summary>
/// <PARAM name="INIPath"></PARAM>
public IniFile(string INIPath)

{
path = INIPath;
}

/**//// <summary>
/// Write Data to the INI File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// Section name
/// <PARAM name="Key"></PARAM>
/// Key Name
/// <PARAM name="value"></PARAM>
/// value Name
public void IniWritevalue(string Section,string Key,string value)

{
WritePrivateProfileString(Section,Key,value,this.path);
}

/**//// <summary>
/// Read Data value From the Ini File
/// </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, this.path);
return temp.ToString();
}
}
}
使用这个类
按照下列步骤使用:
1. 在你的项目中加入命名空间的引用
using INI;
2. 创建一个如下的INIFile对象
INIFile ini = new INIFile("C:\\test.ini");
3. 使用IniWritevalue
方法在指定的配置节给一个键付值,或者使用IniReadvalue
方法在指定的一个配置节中读取某个键的值。
如上所述,在C#中非常容易将API函数封装到你的类中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架