我正在尝试编写c#代码以从不包含节头的ini文件中读取键值。正如
private static extern int GetPrivateProfileString(string section, string key,string def, StringBuilder retVal,int size,string filePath);
函数在这种情况下不起作用(如上所述here),我试图创建另一个插入了section header的ini文件。然后使用GetPrivateProfileString函数读取键值。 ini文件正在按预期创建,但该函数为结果提供null值。我哪里出错?
下面给出了代码段
//someFilePath contains .ini file
string userFilePath = "someFilePath";
string sectionName = "TempSectionHeader";
string copyFile = "text.ini";
if (File.Exists(userFilePath))
{
if(File.Exists(copyFile))
{
File.Delete(copyFile);
}
File.AppendAllText("text.ini", "["+ sectionName + "]");
string contents = File.ReadAllText(userFilePath);
contents = contents.Replace("\0", "");
File.AppendAllText(copyFile, "\r\n");
File.AppendAllText(copyFile, contents);
installName = ReadValueFromINIFile(sectionName, "installName", copyFile);
MessageBox.Show(installName);
}
答案 0 :(得分:1)
传递给GetPrivateProfileString的路径是错误的。尝试使用:
string installName = ReadValueFromINIFile(sectionName, "installName", Path.Combine(Application.StartupPath, copyFile));