/// <summary>
/// ini文件操作类
/// </summary>
public class IniHelper
{
#region 动态链接库调用
/// <summary>
/// 调用动态链接库读取值
/// </summary>
/// <param name="lpAppName">ini节名</param>
/// <param name="lpKeyName">ini键名</param>
/// <param name="lpDefault">默认值:当无对应键值,则返回该值。</param>
/// <param name="lpReturnedString">结果缓冲区</param>
/// <param name="nSize">结果缓冲区大小</param>
/// <param name="lpFileName">ini文件位置</param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
int nSize,
string lpFileName); /// <summary>
/// 调用动态链接库写入值
/// </summary>
/// <param name="mpAppName">ini节名</param>
/// <param name="mpKeyName">ini键名</param>
/// <param name="mpDefault">写入值</param>
/// <param name="mpFileName">文件位置</param>
/// <returns>0:写入失败 1:写入成功</returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(
string mpAppName,
string mpKeyName,
string mpDefault,
string mpFileName);
#endregion /// <summary>
/// 读ini文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <returns>返回读取值</returns>
public static string IniRead(string section, string key, string path)
{
StringBuilder stringBuilder = new StringBuilder(); //定义一个最大长度为1024的可变字符串
GetPrivateProfileString(section, key, "", stringBuilder, , path); //读取INI文件
return stringBuilder.ToString(); //返回INI文件的内容
} /// <summary>
/// 写ini文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="iValue">待写入值</param>
public static void IniWrite(string section, string key, string iValue, string path)
{
WritePrivateProfileString(section, key, iValue, path); //写入
} /// <summary>
/// 根据文件名创建文件
/// </summary>
/// <param name="path">文件名称以及路径</param>
public static void iniCreat(string path)
{
if (!File.Exists(path)) //判断是否存在相关文件
{
FileStream _fs=File.Create(path); //不存在则创建ini文件
_fs.Close(); //关闭文件,解除占用
}
} /// <summary>
/// 删除ini文件中键
/// </summary>
/// <param name="section">节名称</param>
/// <param name="key">键名称</param>
/// <param name="path">ini文件路径</param>
public static void IniDelKey(string section,string key, string path)
{
WritePrivateProfileString(section, key, null, path); //写入
} /// <summary>
/// 删除ini文件中节
/// </summary>
/// <param name="section">节名</param>
/// <param name="path">ini文件路径</param>
public static void IniDelSection(string section, string path)
{
WritePrivateProfileString(section, null, null, path); //写入
}
}

IniHelper的更多相关文章

  1. IniHelper——INI操作辅助类

    使用INI配置文件,简单便捷. 该辅助工具类为C#操作INI文件的辅助类,源码在某位师傅的基础上完善的来,因为忘记最初的来源了,因此不能提及引用,在此深感遗憾,并对贡献者表示感谢. using Sys ...

  2. 关于C#调用非托管动态库方式的性能疑问

    最近的项目中,因为一些原因,需要C#调用非托管(这里为C++)的动态库.网上喜闻乐见的方式是采用静态(DllImport)方式进行调用.偶然在园子里看到可以用动态(LoadLibrary,GetPro ...

  3. 基于EasyUI的Web应用程序及过去一年的总结

    前言 在这家公司服务了一年时间,一个多月之前已经提交了离职申请,好在领导都已经批准了,过几天就办理手续了,在此感谢领导的栽培与挽留,感谢各位同事在工作中的给我的帮助,感谢师傅(在我心中当他是我师傅,跟 ...

  4. 基于正则的INI读写工具类,支持加密解密

    看到这个标题,有人会问,现在都用xml做配置文件了,谁还用INI文件啊!下面来简单对比一下xml和ini: 1.XML功能强大表达能力强,同时扩展性好. 2.它的主要优势是异构平台的整合.通讯. 3. ...

  5. C#访问配置文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...

  6. C#操作ini

    /// <summary> /// 读写INI文件的类. /// </summary> public class INIHelper { // 读写INI文件相关. [DllI ...

  7. WinForms 小型HTML服务器

    最近教学,使用到了Apache和IIS,闲着无聊,有种想自己写个小服务器的冲动. 在网上找了半天的资料,最后终于搞定了,测试可以访问.效果图如下: 因为只是处理简单的请求,然后返回请求的页面,所以没有 ...

  8. 原创 C# 正则表达式 读写 Ini 文件

    昨天遇到读ini文件的问题,我知道C#里没有提供相应的类,所有的.net配置都是xml方式存储的. 读取ini文件,很多人直接google一把,然后添加dll引用.介绍的比较详细的,如: C#如何读写 ...

  9. Ini文件帮助类

    .ini文件是什么 .ini 文件是Initialization File的缩写,就是初始化文件.在Windows系统中,其是配置文件所采用的存储格式(主要是system.ini,win.ini,sy ...

随机推荐

  1. ubuntu 16.04 源代码安装libusb

    libusb是一个跨平台的usb通讯库:https://libusb.info/ 在ubuntu16上安装 1. 首先安装 libudev-dev sudo apt-get install libud ...

  2. Android编码学习之Adapter

    1. Apter的作用 Adapter是将数据绑定到UI界面上的桥接类.Adapter负责创建显示每个项目的子View和提供对下层数据的访问.Adapter的作用就是将要在列表内显示的数据和列表本身结 ...

  3. 关联规则挖掘算法之Apriori算法

    Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集. 关于这个算法有一个非常有名的故事:"尿布和啤酒".故事是 ...

  4. 各种OJ网站汇总

    acmicpc.info acmicpc.info http://acmicpc.info/archives/224 此网站聚合了各种ICPC相关信息. 国内Online Judge 用户体验极佳的v ...

  5. systemctl -- 系统服务管理器 【转】

    systemctl  -- 系统服务管理器 systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 直接运行命令可以列出所有正在运行的服务 ...

  6. BOOST 线程完全攻略

    1 创建线程 首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象: (2)explicit thre ...

  7. golang编译库文件方式

    // as c-shared library $ go build -buildmode=c-shared -o nautilus.a nautilus.go // as c-archive $ go ...

  8. bzoj1030【JSOI2007】文本生成器

    1030: [JSOI2007]文本生成器 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2891  Solved: 1193 [Submit][St ...

  9. BizTalk RosettaNet解决方案搭建

    contoso为证书颁发机构 分别在两台服务器中配置hosts 192.168.199.160 fabrikam 192.168.199.225 contoso 安装CA 控制面板,添加删除程序 打开 ...

  10. springmvc(二) ssm框架整合的各种配置

    ssm:springmvc.spring.mybatis这三个框架的整合,有耐心一步步走. --WH 一.SSM框架整合 1.1.整合思路 从底层整合起,也就是先整合mybatis与spring,然后 ...