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配置文件操作库,非常好
发表评论

评论内容
昵称:
关联文章