我正在使用Kernel32-solution(GetPrivateProfileString)读取一个ini文件。它在XP下工作正常,但现在它(不)在Windows-7下运行。 现在我有问题,Windows7保护文件,我不能写入它(与另一个程序)。 一旦我用kernel32打开ini文件,它就会被永久阻止,直到我关闭程序。 是否有任何参数可以简单地读取文件而不进行写保护? 或者阅读ini文件的任何其他解决方案? 我正在使用C#2010 express
感谢您的帮助
编辑: 同时我试图将原始的ini文件复制到第二个文件,然后我只读取带有kernel32函数的复制的ini文件。 但现在看来简单的复制命令 System.IO.File.Copy(PathOriginal,lokalPath,true); 复制后阻止其他程序的原始文件。
所以我的问题不在于现在的ini文件。它是Windows 7下的文件保护。
是否有一个技巧可以“释放”文件i的窗口句柄?
答案 0 :(得分:3)
试用Nini,这是一个100%C#版本(不需要DLL / PInvoke)。还有一个NuGet package。
示例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"));
答案 1 :(得分:0)
查看此IniReader库。它可以帮助您解决问题: