GetPrivateProfileString() 当 key 包含空格时,需要进行转义

使用 GetPrivateProfileString() 方法可以方便的读取 ini 格式文件中的内容,如:

[section]
tommy = worker

使用 C# 读取如下:

1. 先引入 GetPrivateProfileString() 方法

[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);

2. 调用

string keyName = "tommy";
string filePath = @"D:	ommy.ini";
StringBuilder sb = new StringBuilder(255);
GetPrivateProfileString(section, keyName, "", sb, 261, filePath);

但是当 key 包含空格时,ini 文件就应该如下:

[section]
"tommy huang" = worker

此时的 C# 需要对 key 进行转义:

string keyName = "tommy huang";
keyName = """ + keyName + """;//进行转义
string filePath = @"D:	ommy.ini";
StringBuilder sb = new StringBuilder(255);
GetPrivateProfileString(section, keyName, "", sb, 261, filePath);

总结:
如果通过 GetPrivateProfileString() 方法读取 ini 格式文件时,如果 key 包含空格,先进行转义 """ + key + """;

原文地址:https://www.cnblogs.com/tommy-huang/p/12080226.html