1

我正在使用 Kernel32 解决方案(GetPrivateProfileString)读取一个 ini 文件。它在 XP 下运行良好,但现在它(不)在 Windows-7 下运行。现在我遇到了windows7保护文件并且我无法写入它(使用另一个程序)的问题。一旦我用 kernel32 打开 ini 文件,它就会被永远阻塞,直到我关闭程序。是否有任何参数可以简单地读取 ini- 文件而不对其进行写保护?或任何其他读取ini文件的解决方案?我正在使用 C# 2010 express

感谢帮助

编辑:同时我试图将原始ini文件复制到第二个文件,然后我只使用kernel32函数读取复制的ini文件。但现在看来,简单的复制命令 System.IO.File.Copy(PathOriginal, lokalPath, true); 复制后阻止其他程序的原始文件。

所以我现在的问题不在于ini文件。它通常是 Windows 7 下的文件保护。

是否有“释放”Windows 7 中文件句柄的技巧?

4

2 回答 2

3

试试Nini,它是 100% C# 版本(不需要 DLL/PInvoke)。还有一个NuGet 包

示例 INI 文件:

[Cars]
model = Toyota
year = 2012

C# 代码:

Nini.Ini.IniDocument doc = new Nini.Ini.IniDocument ("configuration.ini");
Console.WriteLine ("Model: " + doc.Get("Cars", "model"));
Console.WriteLine ("Year: " + doc.GetInt("Cars", "year"));
于 2014-03-05T14:08:48.687 回答
0

查看这个 IniReader 库。它可以帮助您解决问题:

http://www.mentalis.org/soft/class.qpx?id=6

于 2014-03-04T10:09:22.570 回答