Нужна альтернатива для чтения ini-файлов (проблемы с kernel32-решением)

Я читаю INI-файл, используя Kernel32-решение (GetPrivateProfileString). Он работал нормально под XP, но теперь он (не) работает под Windows-7. Теперь у меня есть проблема, что Windows7 защищает файл, и я не могу записать в него (с другой программой). Как только я открываю ini-файл с kernel32, он блокируется навсегда, пока я не закрою программу. Есть ли какой-нибудь параметр для простого чтения файла без его защиты от записи? Или какие-то другие решения по чтению INI-файла? Я использую C# 2010 Express

Спасибо за помощь

Редактировать: Тем временем я пытался скопировать исходный INI-файл во второй файл, а затем я только читаю скопированный INI-файл с функциями ядра 32. Но теперь кажется, что простая команда копирования System.IO.File.Copy(PathOriginal, lokalPath, true); блокирует исходный файл для другой программы после его копирования.

Так что моя проблема сейчас не в ini-файле. Это защита файлов в целом под Windows 7.

Есть ли хитрость, чтобы "освободить" дескриптор файла в Windows 7?

2 ответа

Попробуйте 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"));

Проверьте эту библиотеку IniReader. Это может помочь вам с вашей проблемой:

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

Другие вопросы по тегам