C#操作 配置文件*.ini


C#操作INI文件IniFile.cs

/// <summary>
/// 操作INI文件类 
/// </summary>
public class IniFile
{
    const int DATA_SIZE = 1024;

    private string _path; //INI档案名 
    public string IniPath { get { return _path; } set { _path = value; } }

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    public struct STRINGBUFFER
    {
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = DATA_SIZE)]
        public string szText;
    }

    //读写INI文件的API函数 
    [DllImport("kernel32", CharSet = CharSet.Auto)]
    private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

    [DllImport("kernel32", CharSet = CharSet.Auto)]
    private static extern int GetPrivateProfileString(string section, string key, string def, out STRINGBUFFER retVal, int size, string filePath);

    //类的构造函数,传递INI档案名 
    public IniFile(string INIPath)
    {
        _path = INIPath;
        if (!File.Exists(_path)) CreateIniFile();
    }
    public IniFile() { _path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "config.ini"); if (!File.Exists(_path)) CreateIniFile(); } //写INI文件 
    public void IniWriteValue(string Section, string Key, string Value)
    {
        WritePrivateProfileString(Section, Key, Value, this._path);
    }

    //读取INI文件指定项目的数据 
    public string IniReadValue(string Section, string Key)
    {
        int i;
        STRINGBUFFER RetVal;
        i = GetPrivateProfileString(Section, Key, null, out RetVal, DATA_SIZE, this._path);
        string temp = RetVal.szText;
        return temp.Trim();
    }

    //读取INI文件指定项目的数据 
    public string IniReadValue(string Section, string Key, string defaultValue)
    {
        int i;
        STRINGBUFFER RetVal;
        i = GetPrivateProfileString(Section, Key, null, out RetVal, DATA_SIZE, this._path);
        string temp = RetVal.szText;
        return temp.Trim() == "" ? defaultValue : temp.Trim();
    }

    /// <summary>
    /// 创建INI文件
    /// </summary>
    public void CreateIniFile()
    {
        var dir = Path.GetDirectoryName(_path); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
        StreamWriter w = File.CreateText(_path);
        w.Write("");
        w.Flush();
        w.Close();
    }
}
GarsonZhang www.infnitee.com

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:GIT彻底删除文件以及历史记录
下一篇:网易闪电邮客户端中配置企业邮箱的方法
评论列表

#1楼 会飞的鱼 2021-12-14 17:43
一直在用的INI配置文件操作库,非常好
发表评论

评论内容
昵称:
验证码:
验证码
关联文章

C#操作 配置文件*.ini
C#解析指定dll的app.config配置文件
python四种配置文件
C# 配置文件增加自定义节点
C#使用SharpZipLib进行压缩文件(*.rar,*.zip)操作,压缩和解压
YESWEB POS开发 Electron操作appdata配置信息
C# winform选择dll文件
C#爬虫:使用Selenium,Selenium配置指南
C# 读取txt文件生成Word文档
YESWEB 开发框架 路由配置文件 作用原理
C#根据文件流判断文件类型
VScode配置Python开发环境
C# 解析加载读取XML文件的正确姿势
C# Enum枚举操作
nuget包配置复制文件到编译目录
C# 静态类获得 机密配置
IDEA工具配置
Anaconda配置
C# 时间戳、随机数相关操作
在SAP UI5应用程序的配置文件之【路由配置

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码