博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# ini文件操作【源码下载】
阅读量:6714 次
发布时间:2019-06-25

本文共 3678 字,大约阅读时间需要 12 分钟。

  介绍C#如何对ini文件进行读写操作,C#可以通过调用【kernel32.dll】文件中的 WritePrivateProfileString()和GetPrivateProfileString()函数分别对ini文件进行读和写操作。包括:读取key的值、保存key的值、读取所有section、读取所有key、移除section、移除key等操作。

目录

1.

2. :包括读取key的值、读取所有section、读取所有key等操作。

3. : 包括保存key的值、移除section、移除key等操作。

4. :展示运行图及源码下载

 

1. ini文件介绍

ini文件常用于存储各类应用的配置信息,而内部的文件结构主要包括三个概念:sectionkeyvalue

其中section为各独立的区域块,名称可以为英文、中文。

 

2. GetPrivateProfileString()函数 :读取操作

C#可以通过调用【kernel32.dll】文件中的 GetPrivateProfileString()函数对ini文件进行读取操作。

官方API

函数签名

[DllImport("kernel32")]private static extern int GetPrivateProfileString(string sectionName, string key, string defaultValue, byte[] returnBuffer, int size, string filePath); 

成员

sectionName  {string | null}:要读区的区域名。若传入null值,第4个参数returnBuffer将会获得所有的section name。

key {string | null}:key的名称。若传入null值,第4个参数returnBuffer将会获得所有的指定sectionName下的所有key name。

defaultValue {string}:key没找到时的返回值。

returnBuffer {byte[]}:key所对应的值。

filePath {string}:ini文件路径。

支持的操作

1) 。

2) 。

3) 。

 

2.1 获取指定key的值

/// /// 根据Key读取Value/// /// section名称/// key的名称/// 文件路径public static string GetValue(string sectionName, string key, string filePath){    byte[] buffer = new byte[2048];    int length = GetPrivateProfileString(sectionName, key, "发生错误", buffer,999, filePath);    string rs = System.Text.UTF8Encoding.Default.GetString(buffer, 0, length);    return rs;}

 

2.2 获取ini文件所有的section名称

注意:中文名称的section要进行转码。

/// /// 获取ini文件内所有的section名称/// /// 文件路径/// 
返回一个包含section名称的集合
public static List
GetSectionNames(string filePath){ byte[] buffer = new byte[2048]; int length = GetPrivateProfileString(null, "", "", buffer, 999, filePath); String[] rs = System.Text.UTF8Encoding.Default.GetString(buffer, 0, length).Split(new string[] { "\0" },StringSplitOptions.RemoveEmptyEntries); return rs.ToList();}

  

2.3 获取指定section下的所有key名称

同样要对中问名称的key进行转码。

/// /// 获取指定section内的所有key/// /// section名称/// 文件路径/// 
返回一个包含key名称的集合
public static List
GetKeys(string sectionName, string filePath){ byte[] buffer = new byte[2048]; int length = GetPrivateProfileString(sectionName,null,"", buffer, 999, filePath); String[] rs = System.Text.UTF8Encoding.Default.GetString(buffer, 0, length).Split(new string[] { "\0" }, StringSplitOptions.RemoveEmptyEntries); return rs.ToList();}

 

3. WritePrivateProfileString()函数:写入操作

C#可以通过调用【kernel32.dll】文件中的 WritePrivateProfileString()函数对ini文件进行写入操作。

官方API

函数签名

[DllImport("kernel32")]private static extern long WritePrivateProfileString(string sectionName, string key, string value, string filePath);

成员

sectionName {string}:要写入的区域名。

key {string | null}:key的名称。若传入null值,将移除指定的section。

value {string | null}:设置key所对应的值。若传入null值,将移除指定的key。

filePath {string}:ini文件路径。

支持的操作

1) 。

2) 。

3) 。

 

3.1 创建/设置key的值

注意:若此key不存在将会创建,否则就为修改此key的值。

/// /// 保存内容到ini文件/// 
若存在相同的key,就覆盖,否则就增加
///
/// section名称/// key的名称/// 存储的值/// 文件路径public static bool SetValue(string sectionName, string key, string value, string filePath){ int rs = (int)WritePrivateProfileString(sectionName, key, value, filePath); return rs > 0;}

 

3.2 移除指定的section

说明:key参数传入null就为移除指定的section。

/// /// 移除指定的section/// /// section名称/// 文件路径/// 
public static bool RemoveSection(string sectionName, string filePath){ int rs = (int)WritePrivateProfileString(sectionName, null, "", filePath); return rs > 0;}

  

3.3 移除指定的key

说明:value参数传入null就为移除指定的key。

/// /// 移除指定的key/// /// section名称/// 文件路径/// 
public static bool Removekey(string sectionName, string key, string filePath){ int rs = (int)WritePrivateProfileString(sectionName, key, null, filePath); return rs > 0;}

 

4. 源码下载

4.1 运行图

 

4.2 下载地址

百度网盘

CSDN

 

转载地址:http://dzalo.baihongyu.com/

你可能感兴趣的文章
JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面...
查看>>
关于“鸡脚神”的看法
查看>>
vsftpd服务器
查看>>
枚举的基础类型
查看>>
在CentOS上安装svn服务器
查看>>
可爱的python测试开发库(python测试开发工具库汇总)
查看>>
python返回汉字的首字母
查看>>
linux下yum更新出现HTTP Error 404 NOT FOUND错误的办法
查看>>
Nginx负载均衡配置实例
查看>>
Percona-mysql-5.5.38双主复制&mmm配置
查看>>
spring高级 之 拦截器
查看>>
Python(四)装饰器、迭代器&生成器、re正则表达式、字符串格式化
查看>>
我的友情链接
查看>>
多个viewpager可能产生的问题
查看>>
理解自组织:敏捷里的自组织团队都是骗人的
查看>>
Java监控神器之psi-probe监控Tomcat和应用
查看>>
LCT
查看>>
VIJOS-P1635 城市连接
查看>>
chown命令详情
查看>>
强数学归纳法
查看>>