C# 读取 INI 文件:使用 kernel32 的 GetPrivateProfileString API
本文将介绍如何使用 C# 读取 INI 文件,并解决读取时出现乱码的问题。我们将使用 kernel32 库中的 GetPrivateProfileString API 来读取 INI 文件中的键值对。
以下是一个示例代码,使用路径读取 INI 文件并使用 kernel32 的 GetPrivateProfileString 读取键值对:
using System.Runtime.InteropServices;
using System.Text;
class INIFileReader
{
[DllImport('kernel32')]
private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
public static string ReadValue(string filePath, string section, string key, string defaultValue)
{
StringBuilder sb = new StringBuilder(255);
int length = GetPrivateProfileString(section, key, defaultValue, sb, sb.Capacity, filePath);
if (length == 0)
{
return defaultValue;
}
else
{
return sb.ToString().Trim();
}
}
}
// Usage:
string value = INIFileReader.ReadValue('C:\my.ini', 'section', 'key', 'default');
如果您读取的值是乱码,可能是因为文件编码不正确。您可以尝试使用 Encoding 类指定正确的编码:
using System.IO;
using System.Text;
// Read file with UTF-8 encoding
StreamReader sr = new StreamReader('C:\my.ini', Encoding.UTF8);
string line = sr.ReadLine();
如果您仍然遇到问题,请提供更多详细信息,以便我能够更好地帮助您解决问题。
原文地址: https://www.cveoy.top/t/topic/mjUK 著作权归作者所有。请勿转载和采集!