【发布时间】:2016-10-14 09:26:03
【问题描述】:
我正在尝试编写 c# 代码以从不包含节标题的 ini 文件中读取键值。作为
private static extern int GetPrivateProfileString(string section, string key,string def, StringBuilder retVal,int size,string filePath);
函数在这种情况下不起作用(如提到的here),我试图创建另一个插入节头的ini文件。然后使用 GetPrivateProfileString 函数读取键值。 ini 文件按预期创建,但函数给出空值作为结果。我哪里出错了?
下面给出代码sn-p
//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);
}
【问题讨论】:
-
听起来是个坏主意。链接的帖子有一个很好的 dtb 的 Linq 答案,这可能很难被置顶。 - 也不是
File.Exists(userFilePath)为什么不是Directory.Exists(userFilePath)??