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开发框架
上一篇:没有了
评论列表

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

评论内容
昵称:
关联文章

C#操作 配置文件*.ini
python四种配置文件
C#解析指定dll的app.config配置文件
C# 配置文件增加自定义节点
C#使用SharpZipLib进行压缩文件(*.rar,*.zip)操作,压缩和解压
C#爬虫:使用Selenium,Selenium配置指南
VScode配置Python开发环境
YESWEB 开发框架 路由配置文件 作用原理
C# 读取txt文件生成Word文档
C#根据文件流判断文件类型
C# 解析加载读取XML文件的正确姿势
C# Enum枚举操作
初始化配置-数据库配置
C# 时间戳、随机数相关操作
文件加密技术研究
C#从文件夹中随机获取一个文件
局域网共享文件自动更新办法
C# 利用 SharpZipLib 对多个文本字符串进行多文件打包为RAR或ZIP并进行下载
C#错误异常日志记录到文件
.net Core项目.csproj配置指南