public class IniFileHelper
{
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
[DllImport("kernel32")]
private static extern long GetPrivateProfileString(string section, string key, string defVal, byte[] retVal, int size, string filePath);
public static void SetValue(string section, string key, string value, string path)
{
WritePrivateProfileString(section, key, value, path);
}
public static string GetValue(string section, string key, string path, string defaultValue = null, bool writeDefaultValue = false)
{
var temp = new StringBuilder(255);
GetPrivateProfileString(section, key, "", temp, 255, path);
var result = temp.ToString();
if (string.IsNullOrEmpty(result))
{
if (writeDefaultValue)
SetValue(section, key, defaultValue, path);
return defaultValue;
}
return result;
}
public byte[] GetValues(string section, string key, string path)
{
var temp = new byte[255];
var i = GetPrivateProfileString(section, key, "", temp, 255, path);
return temp;
}
public void ClearAllSection(string path)
{
SetValue(null, null, null, path);
}
public void ClearSection(string section, string path)
{
SetValue(section, null, null, path);
}
}