tijian_jichuang/Code/SmartUpdater/IniFile.cs

95 lines
2.7 KiB
C#
Raw Permalink Normal View History

2025-02-20 11:54:48 +08:00
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace EAS.Distributed
{
/// <summary>
/// Ini<6E>ļ<EFBFBD><C4BC><EFBFBD>д<EFBFBD>
/// </summary>
internal class IniFile
{
#region API
class API
{
/// <summary>
/// дIni<6E>ļ<EFBFBD><C4BC><EFBFBD>
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="val"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
public static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
/// <summary>
/// <20><>Ini<6E>ļ<EFBFBD><C4BC><EFBFBD>
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="def"></param>
/// <param name="retVal"></param>
/// <param name="size"></param>
/// <param name="filePath"></param>
/// <returns></returns>
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
}
#endregion
private string path = string.Empty;
internal IniFile()
{
}
internal IniFile(string path)
{
this.path = path;
}
/// <summary>
/// ·<><C2B7><EFBFBD><EFBFBD>
/// </summary>
internal string FilePath
{
get
{
return this.path;
}
set
{
this.path = value;
}
}
/// <summary>
/// д<><D0B4>Iniָ<69><D6B8><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ֵ<EFBFBD><D6B5>
/// </summary>
/// <param name="section"><3E>ڡ<EFBFBD></param>
/// <param name="key"><3E><><EFBFBD><EFBFBD></param>
/// <param name="value">ֵ<><D6B5></param>
internal void WriteValue(string section, string key, string value)
{
API.WritePrivateProfileString(section, key, value, this.path);
}
/// <summary>
/// <20><>ȡIniָ<69><D6B8><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD>ֵ
/// </summary>
/// <param name="section"><3E>ڡ<EFBFBD></param>
/// <param name="key"><3E><><EFBFBD><EFBFBD></param>
/// <returns></returns>
internal string ReadValue(string section, string key)
{
StringBuilder dataBuffer = new StringBuilder(1024 * 10);
int i = API.GetPrivateProfileString(section, key, string.Empty, dataBuffer, 1024 * 10, this.path);
return dataBuffer.ToString();
}
}
}