【发布时间】:2014-04-05 18:00:20
【问题描述】:
我正在使用 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 中是否有“释放”文件句柄的技巧?
【问题讨论】:
-
INI 文件现在或多或少已被弃用。您可以尝试使用配置文件,但我发现它们很难用作读写源。如果我需要编写一些应用程序或用户配置,我更喜欢使用存储在 CommonApplicationData 或 ApplicationData 中的 XML 文件
-
对 C# ini 文件解析器的简单搜索显示了很多可能性。其中许多将文件处理留给您,他们只是想传递一个打开的流 - 所以您只需打开至少指定
FileShare.Write的流并交给他们。