读写Ini文件

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Reflection; namespace F.Studio.Common.Cfg { public class INIHelper { public string FilePath { get; private 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); //声明读写INI文件的API函数 public INIHelper(string filePath) { FilePath = filePath; } public static string AppPath { get { return System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } } //类的构造函数,传递INI文件名 public void SetValue(string Section, string Key, string Value) { WritePrivateProfileString(Section, Key, Value, this.FilePath); } //写INI文件 public string GetValue(string Section, string Key, string def) { StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(Section, Key, def, temp, 255, this.FilePath); return temp.ToString(); } } }
调整了根据dll文件位置获取ini文件的位置,以适应pb等调试环境下执行
----------------------------------------------------------------------
使用方式
private Lazy<string> LazyConn = new Lazy<string>(() =>
{
var filename = INIHelper.AppPath + "/settings.ini";
var iniHelper = new INIHelper(filename);
return iniHelper.GetValue("Connections", "ConnStr", "");
}, true);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述