从没有节头的.ini文件中读取键值

时间:2016-10-14 09:26:03

标签: c# ini

我正在尝试编写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);
}

1 个答案:

答案 0 :(得分:1)

传递给GetPrivateProfileString的路径是错误的。尝试使用:

string installName = ReadValueFromINIFile(sectionName, "installName", Path.Combine(Application.StartupPath, copyFile));