Как получить доступ к файлу ini

Обновлено: 01.07.2024

Формат файла "INI" является неофициальным стандартом для файлов конфигурации для некоторых платформ или программного обеспечения. Файлы INI представляют собой простые текстовые файлы с базовой структурой, состоящей из разделов, свойств и значений [Источник 1] .

В MS-DOS и 16-разрядных Windows-платформах под Windows ME файл INI служил основным механизмом для настройки операционной системы и установленных функций приложений, таких как драйверы устройств, шрифты, конфигурации запуска и параметры, которые было необходимо инициализировать в Загрузки Windows. Файлы INI также обычно используются приложениями для хранения своих индивидуальных настроек. [Источник 2]

Имя "INI-файл" происходит от обычно используемого расширения имени файла .INI , что означает "инициализация". Другими распространенными расширениями файлов инициализации являются .CFG , .conf ,и .TXT , особенно «config.txt».

Системы Linux и Unix также используют одинаковый формат файлов для настройки системы. Кроме того, программное обеспечение, ориентированное на платформу, может использовать этот формат для конфигурации. Он удобочитаемый и простой для разбора, поэтому он является удобным форматом для файлов конфигурации, которые не требуют значительно большей сложности.

Содержание

Формат

Ключи (свойства)

Основной элемент, содержащийся в ini файл - "ключ" или "значение". Каждый ключ имеет имя и значение, разделенные на знак равенства ( = ). Имя отображается слева от знака равенства.

Sections

Ключи могут (но не обязательно) быть сгруппированы в произвольно названные "разделы". Название раздела отображается на отдельной строке в квадратных скобках ( [ и ] ). Все ключи после объявления раздела связаны с этим разделом. Нет явного "конца раздела"; разделы заканчиваются в следующей декларации раздела или в конце файла. Разделы не могут быть вложенными.

Нечувствительность к регистру

Имена разделов и свойств не зависят от регистра в Windows [Источник 3] .

Комментарии

Точка с запятой ( ; ) в начале строки означают комментарий. Строки комментариев игнорируются.

Различные особенности

Формат файла INI не достаточно определенный. Многие программы поддерживают функции, выходящие за рамки описанных выше основ. Ниже приведен список некоторых общих функций, которые могут или не могут быть реализованы в любой заданной программе

Пустые строки

Некоторые устаревшие программы не позволяют иметь пустые строки. Поэтому каждая строка должна быть заголовком раздела, свойством или комментарием.

Комментарии

В некоторых реализациях, комментарий может начинаться в любом месте на линии, в том числе на той же строке после свойства или объявления. В другие, в том числе по WinAPI функция GetPrivateProfileString , комментариев должна происходить на отдельной линии .

Повторяющиеся имена

Большинство реализаций поддерживают только одно свойство с заданным именем в разделе. Второе вхождение имени свойства может вызвать прерывание, оно может быть проигнорировано (и значение сброшено), или оно может переопределить первый вариант (с отброшенным первым значением). Некоторые программы используют повторяющиеся имена свойств для реализации многозначных свойств.

Интерпретация объявлений с несколькими разделами с одинаковым именем также различается. В некоторых реализациях дублированные разделы просто объединяют свои свойства вместе, как если бы они происходили соприкасаясь. Другие могут прервать или игнорировать некоторые аспекты INI-файла.

Глобальные свойства

Необязательные "глобальные" свойства также могут быть разрешены, которые объявляются перед объявлением любого раздела [Источник 4] .

Иерархия

Чаще всего, ini-файлы не имеют иерархии разделов в разделах.

Наименование/значение разделителя

Некоторые реализации допускают использование двоеточия ( : ) в качестве разделителя имени / значения (вместо знака равенства).

Цитированные значения

Некоторые реализации позволяют указывать значения, используя двойные кавычки и/или апострофы. Это позволяет явно объявлять пробелы и / или цитирование специальных символов (равно, точка с запятой и т.д.). Стандартная функция Windows GetPrivateProfileString поддерживает это и удаляет кавычки, которые окружают значения.

Пробелы

Порядок разделов и свойств

В большинстве случаев порядок свойств в разделе и порядок секций в файле значения не имеет, но реализации могут отличаться.

Пример

Ниже приведен пример файла INI для мнимой программы. Он состоит из двух разделов: один для владельца программного обеспечения и один для подключения базы данных расчета заработной платы. Заметьте, что кто модифицировал последний файл и почему вместо IP-адреса используется DNS имя.

Доступ к INI файлам

В Windows, "API профиль" - это программный интерфейс, используемый для чтения и записи параметров из классических файлов .ini в Windows. Например, функция GetPrivateProfileString извлекает строку из указанного раздела в файле инициализации.

Следующий пример программы на языке C демонстрирует чтение значений свойств из вышеупомянутого образца файла INI (пусть имя файла конфигурации будет dbsettings.ini ).

В Unix существует множество различных конфигурационных библиотек для доступа к файлам INI. Они часто уже включены в рамки и инструментальные средства. Примеры парсеров INI для UNIX включают iniparserи libconfiniи Elektra Initiative.

Отображение файла в память

Отображение файла в память. [Источник 5] создает сопоставление между файлом INI и реестром. Оно было представлено в Windows NT и Windows 95 в качестве способа перехода от сохранения настроек в классических .ini-файлах к новому реестру Windows. Ловушка отображения файла в памяти Профиля API и, используя параметры из раздела реестра IniFileMapping , направляет чтение и запись в соответствующие места в реестре.

Используя вышеприведенный пример, можно было бы сделать строковый вызов для извлечения ключа name из раздела owner" из файла настроек, называемого, скажем, dbsettings.ini . Возвращаемое значение должно быть строкой «John Doe»:

INI сопоставление принимает этот вызов API профиля, игнорирует любой путь в указанном имени файла и проверяет, есть ли ключ реестра, соответствующий имени файла в:

Если он существует, он ищет имя записи, соответствующее запрашиваемому разделу. Если запись найдена, INI сопоставление использует ее значение как указатель на другую часть реестра. Затем он ищет запрошенный параметр INI в той части реестра.

Если подходящее имя записи не найдено и есть запись под названием (Default) , INI сопоставление использует последнее. Таким образом, каждое имя секции не нуждается в отдельной записи.

HKEY_LOCAL_MACHINE\Software\. \IniFileMapping\dbsettings.ini
(Default) @USR:Software\oldprogs\inisettings\all
database USR:Software\oldprogs\inisettings\db

Таким образом, в этом случае вызов профиля для раздела [owner] отображается на:

HKEY_CURRENT_USER\Software\oldprogs\inisettings\all
name John Doe
organization Acme Products

где найденное имя записи " name " в соответствует запрошенному ключу INI. Значение «John Doe» затем возвращается к вызову Profile. В этом случае префикс @ по умолчанию запрещает какие-либо чтения обращаться к файлу dbsettings.ini на диске. Результатом является то, что любые настройки, не найденные в реестре, не просматриваются в файле INI.

Запись " database " в реестре не имеет префикса @ для значения; Таким образом, для раздела [database] only сначала выполняются параметры в реестре, а затем параметры в файле dbsettings.ini на диске.

Альтернативы

Начиная с Windows 95, Microsoft начала активно продвигать использование реестра Windows в файле INI. . [Источник 6] Файлы INI обычно ограничены двумя уровнями (разделами и свойствами) и не обрабатывают двоичные данные хорошо

Позднее конфигурационные файлы на основе XML стали популярным выбором для настройки кодировки в текстовых файлах. XML допускает произвольные сложные уровни и вложенность и имеет стандартные механизмы для кодирования двоичных данных.

Совсем недавно, форматы данных сериализации, таких как JSON, TOML и YAML могут служить в качестве формата конфигурации. Эти три альтернативных формата могут встраиваться произвольно, но имеют более мощный синтаксис, чем INI-файл.

Почему программы используют файлы INI и как их просматривать

Файл с расширением INI является файлом инициализации Windows. Эти файлы представляют собой обычные текстовые файлы, которые содержат параметры, которые определяют, как должно работать что-то другое, часто программа.

Распространенный INI-файл в Windows, называемый desktop.ini , представляет собой скрытый файл, в котором хранится информация о том, как должны выглядеть папки и файлы.

Как открыть и редактировать файлы INI

Обычные пользователи не часто открывают или редактируют файлы INI, но их можно открывать и изменять в любом текстовом редакторе. Если дважды щелкнуть INI-файл, он автоматически откроется в приложении «Блокнот» в Windows.

Смотрите наш список лучших бесплатных текстовых редакторов, чтобы найти альтернативные текстовые редакторы, которые могут открывать файлы INI.

Как структурируется INI-файл

INI-файлы могут содержать ключи (также называемые свойствами ), а некоторые имеют дополнительные разделы для группировки ключей. Ключ должен иметь имя и значение, разделенные знаком равенства, например:

Важно понимать, что не все файлы INI работают одинаково, потому что они созданы специально для использования в конкретной программе. Некоторые INI-файлы действительно крошечные (несколько килобайт) с одной или двумя строками информации, а другие могут быть очень длинными (несколько мегабайт) с большим количеством настраиваемых параметров.

В этом примере CCleaner определяет английский язык со значением 1033 . Поэтому, когда открывается CCleaner, он читает INI-файл, чтобы определить, на каком языке отображать текст программы. Хотя для обозначения английского языка используется 1033 , программа также поддерживает и другие языки, что означает, что вы можете изменить его на 1034 , чтобы вместо него использовать испанский.

То же самое можно сказать и о всех других языках, которые поддерживает программное обеспечение, но вы должны просмотреть его документацию, чтобы понять, какие цифры означают другие языки.

Если этот ключ существует в разделе, он может выглядеть так:

Этот конкретный пример находится в INI-файле, который использует CCleaner. Вы можете изменить этот INI-файл самостоятельно, чтобы добавить дополнительные параметры в программу, поскольку он ссылается на этот INI-файл, чтобы определить, что должно быть удалено с компьютера. Эта конкретная программа достаточно популярна, так что вы можете загрузить инструмент под названием CCEnhancer, который обновляет INI-файл с множеством различных опций, которые по умолчанию не встроены.

Дополнительная информация о файлах INI

Некоторые файлы INI могут иметь точку с запятой в тексте. Они просто указывают на комментарий, чтобы что-то описать пользователю, если он просматривает INI-файл. Ничто после комментария не интерпретируется программой, которая его использует.

Имена и разделы ключей не чувствительны к регистру, по крайней мере, в Windows. Это означает, что тот же эффект создается в INI-файле, в котором используются заглавные буквы, а в строчных.

Общий файл с именем boot.ini используется в Windows XP для подробного описания конкретного места установки Windows XP. Если проблемы возникают с этим файлом, см. Как восстановить или заменить Boot.ini в Windows XP.

Общий вопрос, касающийся файлов INI, заключается в том, можете ли вы удалять файлы desktop.ini . Хотя это совершенно безопасно, Windows просто заново создаст файл и применит к нему значения по умолчанию. Так, если вы, например, применили пользовательский значок к папке, а затем удалили файл desktop.ini , папка просто вернется к значку по умолчанию.

INI-файлы широко использовались в ранних версиях Windows, прежде чем Microsoft начала поощрять переход к использованию реестра Windows для хранения настроек приложения. Теперь, хотя многие программы все еще используют формат INI, XML используется для той же цели.

Некоторые другие файлы инициализации, которые вы можете встретить, которые не используют расширение файла INI, являются файлами CFG и CONF. Некоторые программы даже придерживаются TXT.

Как конвертировать файл INI

Нет никакой реальной причины преобразовывать файл INI в другой формат файла. Программа или операционная система, использующая файл, распознает его только под определенным именем и расширением файла, которое использует.

Однако, поскольку файлы INI являются обычными текстовыми файлами, вы можете использовать программу, например Notepad ++, чтобы сохранить ее в другом текстовом формате, таком как HTM/HTML или TXT.


При открытии, удалении или других манипуляциях с файлами и папками вы можете столкнуться с ошибкой доступа к файлам. Я расскажу о том, как с этим бороться и почему так происходит.

Как получить полный доступ к файлам и папкам

Сначала инструкция о том, как получить полный доступ к папкам и файлам. В следующей главе будет объяснение для любознательных.

Открываем папку, где находится проблемный файл или папка. Чтобы получить полный доступ к их содержимому, нужно настроить доступ к файлам:

1. Нажимаем правой кнопкой мыши по заблокированному файлу (или папке) без доступа – Свойства – выбираем вкладку Безопасность:


2. Нажимаем кнопку Дополнительно – выбираем вкладку Владелец:


3. Нажимаем кнопку Изменить и выбираем имя вашего пользователя (в моем случае это Dima, у вас будет другое), также ставим галку на Заменить владельца подконтейнеров и объектов:


4. Если появится окно с текстом “Вы не имеете разрешение на чтение содержимого папки. Хотите заменить разрешения для этой папки так, чтобы иметь права полного доступа?”, отвечаем Да:


5. После смены владельца папки появится окно с текстом “Вы только что стали владельцем этого объекта. Нужно закрыть и вновь открыть окно свойств этого объекта, чтобы видеть или изменять разрешения”. Нажимаем OK, затем снова нажимаем OK (в окне Дополнительные параметры безопасности).

6. В окне Свойства – Безопасность снова нажимаем Дополнительно, только теперь смотрим первую вкладку открывшегося окна – Разрешения. Надо нажать кнопку Изменить разрешения:


(Если вы работаете со свойствами папки, а не файла, отметьте галкой пункт “Заменить все разрешения дочернего объекта на разрешения, наследуемые от этого объекта”. )


8. В открывшемся окне “Выбор: пользователи или группы” вам потребуется ввести имя вашего пользователя (можете посмотреть его в меню “Пуск” – имя будет самой верхней строчкой), нажать кнопку Проверить имена, затем OK:


Если вам нужно, чтобы папка (или файл) открывалась без ограничений абсолютно всеми пользователями, т.е. не только вашим, то снова нажмите Добавить и введите имя “Все” без кавычек (“All” в англоязычной версии Windows), затем нажмите Проверить имена и OK.

9. На вкладке Разрешения по очереди нажимайте два раза по строчкам с именами пользователей и ставьте галку на пункт “Полный доступ”:


Это автоматически поставит галки на пунктах ниже.

10. Затем нажимайте ОК, в следующем окне отвечайте на предупреждение Да, снова ОК, чтобы закрыть все окна.

Готово! Полный доступ к файлам и папкам получен! Можете спокойно их открывать, изменять и производить другие действия с ними.

Вывод: нужно сделать два шага: стать “владельцем” файла или папки (п. 3), затем назначить себе права доступа (п. 6). Во многих инструкциях о том, как получить полный доступ к файлам и папкам, упоминают только первый шаг, забывая о втором. Это не совсем правильно, потому что настройки безопасности файла/папки могут быть разные, надо привести их в нормальный вид, а не только стать “владельцем”.

Зачем нужны права файлам и папкам

Механизм разграничения доступа к файлам и папкам необходим по многим причинам. Например:

1. Ограничение доступа к информации разными пользователями.

Если на одном компьютере или в общей сети работает несколько (больше одного) пользователей, логично ограничить доступ к информации – одним пользователям доступна вся информация (чаще всего это администраторы), другим – только их собственные файлы и папки (обычные пользователи).

Например, дома можно сделать ограничение прав одного пользователя так, чтобы защитить важные файлы и папки от удаления (чтобы ребенок не смог по незнанию удалить важные документы), в то время как с другого (родительского профиля) можно было делать все, что угодно.

В первой главе я показал, как разрешить доступ определенным пользователям. Точно так же можно и ограничить доступ – шаги те же самые, только в пункте 9 надо ставить другие галочки.

2. Безопасность операционной системы.

В Windows XP все устроено довольно примитивно – пользователи с правами администратора могут изменять (и удалять) любые папки и файлы на жестком диске, в том числе системные, т.е. принадлежащие Windows. Фактически, любая программа, запущенная в профиле пользователя-администратора, могла сделать с содержимым жесткого диска всё, что угодно. Например, удалить файл boot.ini, из-за чего Windows перестанет загружаться.

Под правами ограниченного пользователя, где благодаря настройкам безопаности нельзя было удалять важные системные файлы, мало кто сидел, предпочитая администраторскую учетную запись. Таким образом, учетная запись с правами администратора в Windows XP создает самые благоприятные условия для вирусов.

В Windows Vista, в Windows 7 и Windows 8 работает “Контроль учетных записей пользователя” (кратко UAC): при работе в администраторской учетной записи программы, запускаемые пользователем, работают с ограниченными правами. То есть удалить или изменить системные файлы программы не могут. Программы способны получить более полный доступ, запросив его у пользователя с помощью окна UAC, о котором я уже рассказывал:


Если права доступа к файлам настроены правильно и UAC включен, то вирусы, запущенные в администраторской учетной записи Vista/7/8, не смогут серьезно навредить системе без разрешения человека, сидящему за компьютером.

UAC бесполезен в случаях:

1. Если за компьютером сидит пользователь, бездумно нажимающий кнопки “Да” и “OK”

2. Если запускать программы “от имени администратора” (правой кнопкой по ярлыку программы – Запустить от имени администратора).

4. Для системных файлов и папок на жестком диске разрешен полный доступ всем пользователям.

Советую почитать описание типов учетных записей Windows:

Типы учетных записей в Windows 7/8

Типы учетных записей в Windows 7/8

Программы, запущенные в учетной записи ограниченного пользователя Windows Vista/7/8 (тип “Обычный доступ”), не могут вызвать окно UAC и работать с правами администратора, что вполне логично.

Повторю еще раз: когда нет возможности повысить свои права до администраторских, навредить защищенным с помощью ограничения прав доступа файлам операционной системы нельзя.

Причины и решение проблем с доступом к файлам

Проблема в том, что вы пытаетесь получить доступ к файлам и папкам, созданных под другой учетной записью. Решения два: либо разрешить всем пользователям доступ, либо разрешить только тем, кому это нужно, перечислив их. Оба решения легко реализуемы по инструкции выше. Разница лишь в том, что вы будете вводить в пункте 8 – слово “Все” или перечисляя пользователей.

Кстати, можно разрешить доступ всем, но запретить одному (нескольким) пользователям, при этом настройка запрета будет приоритетной для перечисленных пользователей.

Причин возникновения проблем с доступом к файлам множество. Наиболее часто они появляются, если у вас несколько учетных записей, несколько операционных систем или компьютеров – везде учетные записи разные, при создании файлов и папок права назначаются тоже разные.

Что с правами файлов и папок делать нельзя

Ни в коем случае не назначайте полный доступ файлам и папкам на всем жестком диске с установленной операционной системой!

Существует миф о том, что операционная система ограничивает доступ пользователя к его файлам, поэтому надо назначать права доступа всем файлам на диске. Это неправда и изменять права всех файлов нельзя! В системе, в которой не “ковырялись”, не назначали права доступа вручную, все назначено правильно!

Используйте мою инструкцию только в случае реально возникших проблем, не для предотвращения надуманных.

Поясняю: разрешив доступ к системным файлам, Windows по-прежнему будет работать, вот только любой вирус или некорректно работающая программа могут сделать очень нехорошие вещи. Вряд ли вам нужны проблемы.

Свои настройки безопасности имеют папки “C:\Windows”, “C:\Program files”, “C:\Program files (x86)”, “C:\Users”, “C:\System Volume Information”, “C:\ProgramData”, “C:\Recovery” и многие другие. Их менять нельзя, за исключением случаев, если надо произвести какие-либо манипуляции с файлами (например, чтобы изменить тему Windows), причем надо вернуть настройки обратно.

Не меняйте настройки безопасности “просто так”, делая систему беззащитной перед вирусами и сбоями! После установки Windows права доступа к системным папкам настроены правильно, не надо их менять!

Также не рекомендую запускать все программы “от имени администратора” – в этом режиме они имеют повышенные привилегии, поэтому имеют возможность навредить системе.

Совет: если программа корретно работает только в том случае, если запущена “от имени администратора”, при обычном запуске выдавая ошибки – попробуйте назначить полные права на изменение папке с ней в “C:\Program files” или “C:\Program files (x86)” (не самой папке Program files, а папке с нужной программой внутри нее!).

Очень часто это помогает запустить на Windows Vista/7/8/10 старые игры, которые хранят файлы настроек, сохранений внутри своей папки. Будучи запущенными без прав изменить свои собственные файлы, такие игры в лучшем случае не могут сохранить игровой прогресс, в худшем – закрываются или вовсе не запускаются. Со старыми программами то же самое.

Выводы

1. Назначить права доступа относительно легко.

2. Права доступа менять без обоснованной цели нельзя.

3. Изменили права системных файлов – меняйте их обратно. Чтобы изменить права системных папок и файлов на прежние, можно воспользоваться этой инструкцией (метод для Windows Vista должен подойти и к Windows 7, Windows 8, 10).

4. Изменение настроек безопасности – дело тонкое и автор статьи не несет ответственности за ваши действия.


Webinoly: управляем VPS с Ubuntu Server 18.04

Снимок экрана файла INI в программе CCleaner

Файл с INI расширением файла является инициализация файла для Windows , или MS-DOS. Эти файлы представляют собой обычные текстовые файлы, которые содержат параметры, определяющие, как должно работать что-то другое — обычно программа.

Различные программы используют свои собственные файлы INI, но все они служат одной и той же цели. Например, CCleaner использует INI-файл для хранения различных опций . Этот конкретный INI-файл хранится под именем ccleaner.ini в папке установки CCleaner, обычно в C: \ Program Files \ CCleaner \.

Общий файл INI в Windows , называется desktop.ini это скрытый файл , который хранит информацию о том , как должны отображаться папки и файлы.

Как открыть и редактировать файлы INI

Снимок экрана файла INI в программе CCleaner

Люди обычно не открывают и не редактируют файлы INI, но их можно открывать и изменять в любом текстовом редакторе. Если дважды щелкнуть INI-файл, он автоматически откроется в приложении «Блокнот» в Windows.

Посмотрите наш список лучших бесплатных текстовых редакторов для некоторых альтернативных текстовых редакторов, которые также редактируют файлы INI.

Как структурируется INI-файл

INI-файлы содержат ключи (также называемые свойствами ), а некоторые используют дополнительные разделы для группировки ключей. Ключ должен иметь имя и значение, разделенные знаком равенства, например:

INI-файлы работают по-разному в разных программах. Некоторые INI-файлы действительно крошечные (несколько килобайт) с одной или двумя строками информации, а другие могут быть очень длинными (несколько мегабайт) с множеством настраиваемых параметров.

В этом примере CCleaner определяет английский язык со значением 1033 . Таким образом, когда открывается CCleaner, он читает INI-файл, чтобы определить, на каком языке отображать текст программы. Хотя он использует 1033 для обозначения английского языка, программа изначально поддерживает и другие языки, что означает, что вы можете изменить его на 1034, чтобы использовать вместо него испанский.

То же самое можно сказать и о всех других языках, которые поддерживает программное обеспечение, но вы должны просмотреть его документацию, чтобы понять, какие цифры означают другие языки.

Если этот ключ существует в разделе, он может выглядеть так:

Этот конкретный пример находится в INI-файле, который использует CCleaner. Вы можете изменить этот INI-файл самостоятельно, чтобы добавить дополнительные параметры в программу, поскольку он ссылается на этот INI-файл, чтобы определить, что должно быть удалено с компьютера. Эта конкретная программа достаточно популярна, так что вы можете загрузить инструмент под названием CCEnhancer, который обновляет INI-файл с множеством различных параметров, которые по умолчанию не встроены.

Дополнительная информация о файлах INI

Некоторые файлы INI могут содержать точку с запятой в тексте. Они просто указывают на комментарий, чтобы описать что-то пользователю, если он просматривает INI-файл. Ничто после комментария не интерпретируется программой, которая его использует.

Имена и разделы ключей не чувствительны к регистру , по крайней мере, в Windows. Тот же эффект создается в файле INI, в котором заглавные буквы используются как строчные.

Общий файл с именем boot.ini в Windows XP подробно описывает конкретное место установки Windows XP. Если проблемы возникают с этим файлом, см. Как восстановить или заменить Boot.ini в Windows XP .

Удалить файлы desktop.ini безопасно , но Windows воссоздает файл и применяет к нему значения по умолчанию. Итак, если вы применили пользовательский значок, например, к папке, а затем удалили файл desktop.ini , папка вернется к значку по умолчанию.

INI-файлы широко использовались в ранних версиях Windows, прежде чем Microsoft начала поощрять реестр Windows к хранению настроек приложения. Теперь, хотя многие программы все еще используют формат INI, XML служит той же цели.

Некоторые другие файлы инициализации, которые вы можете встретить, которые не используют расширение файла INI, являются файлами CFG и CONF. Некоторые программы даже придерживаются TXT.

Читайте также: