using System.Runtime.InteropServices;
using System.Text;
namespace FaureciaManager
{
public class FileINI
{
/// <summary>
/// 写操作
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
[DllImport("Kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string value, string filePath);
/// <summary>
/// 读操作
/// </summary>
/// <param name="section">接</param>
/// <param name="key">键</param>
/// <param name="defValue">未读取到的默认值</param>
/// <param name="retvalue">读取到的值</param>
/// <param name="size">大小</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
[DllImport("Kernel32")]
private static extern long GetPrivateProfileString(string section, string key, string defValue, StringBuilder retvalue, int size, string filePath);
/// <summary>
/// 读INI文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="defValue">未读取到时候的默认值</param>
/// <param name="filePath">文件路径</param>
/// 用法 FileINI.ReadIni("ConfigURL", "URL", "192.168.10.128:7500", ConfigFilePath);
public static StringBuilder ReadIni(string section, string key, string defValue, string filePath)
{
StringBuilder retValue = new StringBuilder();
GetPrivateProfileString(section, key, defValue, retValue, 256, filePath);
return retValue;
}
/// <summary>
/// 写INI文件
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="value">值</param>
/// <param name="filePath">文件路径</param>
/// 用法 FileINI.WriteIni("ConfigURL", "URL", this.tbxUrl.Text.Trim(), ConfigFilePath);
public static long WriteIni(string section, string key, string value, string filePath)
{
return WritePrivateProfileString(section, key, value, filePath);
}
/// <summary>
/// 删除节
/// </summary>
/// <param name="section">节</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
public static long DeleteSection(string section, string filePath)
{
return WritePrivateProfileString(section, null, null, filePath);
}
/// <summary>
/// 删除键
/// </summary>
/// <param name="section">节</param>
/// <param name="key">键</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
public static long DeleteKey(string section, string key, string filePath)
{
return WritePrivateProfileString(section, key, null, filePath);
}
}
}