https://download.csdn.net/download/sns1991sns/88041637
gitee下载地址:https://gitee.com/linsns/snssharp
使用举例:
IniFile iniFile = new IniFile("4.ini");
//写入
iniFile.WriteIniKeys("section", "key", "4");
//读取
string value =iniFile.ReadIniKeys("section", "key");
其中IniFile类源码如下:
public class IniFile
{
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
private static extern uint GetPrivateProfileSection(string lpAppName, IntPtr lpReturnedString, uint nSize, string lpFileName);
private string filePath;
public IniFile(string filePath)
{
this.filePath = System.IO.Path.GetFullPath(filePath);
}
public string ReadString(string section, string key, string def)
{
StringBuilder temp = new StringBuilder(1024);
try
{
GetPrivateProfileString(section, key, def, temp, 1024, this.filePath);
}
catch
{ }
return temp.ToString();
}
/// <summary>
/// 根据section取所有key
/// </summary>
public string[] ReadIniAllKeys(string section)
{
UInt32 MAX_BUFFER = 32767;
string[] items = new string[0];
IntPtr pReturnedString = Marshal.AllocCoTaskMem((int)MAX_BUFFER * sizeof(char));
UInt32 bytesReturned = GetPrivateProfileSection(section, pReturnedString, MAX_BUFFER, this.filePath);
if (!(bytesReturned == MAX_BUFFER - 2) || (bytesReturned == 0))
{
string returnedString = Marshal.PtrToStringAuto(pReturnedString, (int)bytesReturned);
items = returnedString.Split(new char[] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
}
Marshal.FreeCoTaskMem(pReturnedString);
return items;
}
/// <summary>
/// 根据section,key取值
/// </summary>
public string ReadIniKeys(string section, string keys)
{
return ReadString(section, keys, "");
}
/// <summary>
/// 保存ini
/// </summary>
public void WriteIniKeys(string section, string key, string value)
{
WritePrivateProfileString(section, key, value, this.filePath);
}
/// <summary>
/// 删除段
/// </summary>
public long DeeleteSection(string section)
{
return WritePrivateProfileString(section, null, null, this.filePath);
}
/// <summary>
/// 删除Key
/// </summary>
public long DeeleteKey(string section, string key)
{
return WritePrivateProfileString(section, key, null, this.filePath);
}
}
技术交流
QQ群: 577276243