C#读写ini文件(c读写ini文件)

一、ini的格式

由节(Sections)和键值对(Key-Value Pairs)组成。每个节由方括号包围,例如[SectionName],而键值对则是以等号=分隔的字符串,例如Key=Value。每个节都包含一个或多个键值对,用于存储相关的配置信息。

ini文件不支持多数据类型,只支持字符串

[节点名]

键名 = 值

一、引用

C#命名空间中没有直接读写INI的类,但在"kernel32.dll"文件中有Win32的API函数–WritePrivateProfileString()和GetPrivateProfileString(),可操作ini文件。

其中"kernel32.dll"文件是电脑自带的一个库,引用方法为DllImport

1.DllImport 是 C# 中用于从非托管 DLL(动态链接库)中导入函数的一个特性。这个特性允许你在 .NET 应用程序中调用由其他语言编写的函数,如 C 或 C++。使用 DllImport 可以让你重用现有的非托管代码,而不需要重新实现这些功能。CharSet 属性指定了字符集。CharSet.Auto 表示自动选择合适的字符集

// 声明INI文件的写操作函数 WritePrivateProfileString()

[DllImport("kernel32.dll",CharSet = CharSet.Auto)]

private static extern bool WritePrivateProfileString(string section, string key, string value, string filePath);

// 声明INI文件的读操作函数 GetPrivateProfileString()

[DllImport("kernel32")]

private static extern int GetPrivateProfileString(string section, string key, string def, System.Text.StringBuilder retVal, int size, string filePath);


2.WritePrivateProfileString

section 节点名

key 键名

value 值

filePath 文件地址

string INIStr = Directory.GetCurrentDirectory() + "\\com.ini";


//判断文件是否存在

if (!File.Exists(INIStr))

{

using (FileStream fs = new FileStream(INIStr, FileMode.Create, FileAccess.Write))

{

fs.Close();

}

}

WritePrivateProfileString("MES","MES","12",INIStr);

3.GetPrivateProfileString

section 节点名

key 键名

def 当文件里找不到键对应的值的时候的默认值

retval 读到的值

size 读取缓冲区大小

filePath 文件地址

StringBuilder lpReturnedString = new StringBuilder(200);

string INIStr = Directory.GetCurrentDirectory() + "\\com.ini";

int p= GetPrivateProfileString("MES", "MdE","42", lpReturnedString,200,INIStr);

string oi= lpReturnedString.ToString();

原文链接:,转发请注明来源!