Description
In this article, I am going write C# code example to Read Ini file and Write Ini file using Native Windows API functions ReadPrivateProfileString and WritePrivateProfileString.
Summary
- Ini File structure
- Read Ini file in C# using ReadPrivateProfileString API function
- Write Ini file in C# using WritePrivateProfileString API function
Ini File structure
– An INI file consists of various sections, each of one defines various unique keys with an unique value assigned to each key.
– Sections are declared as a unique word enclosed in square brackets. Spaces enclosed into the square brackets are ignored, but the section must be defined with an unique word.
– Inside a section, Keys must be unique within the same section, but can have the same key name in different sections. A key is assigned using the equal sign (key = value) .
Sample Ini file:
[Install] Mode="Advanced" Port=8080 Path=C:Program FilesSetup
Read INI file in C# using ReadPrivateProfileString API function
To Read INI file setting in C#, we need to add ReadPrivateProfileString Window API function.
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] internal static extern uint GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, uint nSize, string lpFileName); static void Main(string[] args) { string value = ReadINISetting(@"C:\UsersAdministratorDesktopSetup.ini", "Install", "Mode"); Console.WriteLine(value); } static string ReadINISetting(string iniFilePath, string section, string key) { var retVal = new StringBuilder(255); GetPrivateProfileString(section, key, "", retVal, 255, iniFilePath); return retVal.ToString(); }
Write INI file in C# using WritePrivateProfileString API function
To Write Ini file setting in C#, we need to add WritePrivateProfileString Window API function.
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] internal static extern bool WritePrivateProfileString( string lpAppName, string lpKeyName, string lpString, string lpFileName); static void Main(string[] args) { WriteINISetting(@"C:\UsersAdministratorDesktopSetup.ini", "Install", "Path", @"C:\Program FilesSetup"); } static void WriteINISetting(string iniFilePath, string section, string key,string value) { WritePrivateProfileString(section, key, value, iniFilePath); }
Thanks,
Morgan
Software Developer