C#操作ini文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#操作ini⽂件

public class IniOperation

{

private static string iniFilePath; //ini⽂件的路径

const int MAXENTRY = 500000; //最⼤缓冲值500*1000字节

public IniOperation(string strIniFileName)

{

if (strIniFileName.Substring(2, 1) == "\\")//如果输⼊的为路径+Iin⽂件名,使⽤正则表达式会⽐较好⼀点

{

iniFilePath = strIniFileName;

}

else if (strIniFileName.Contains(".ini"))

{

string serciecName = AppconfigClass.GetValue("ServiceName");

iniFilePath = string.IsNullOrEmpty(serciecName) ? strIniFileName : CommonClass.GetWindowsServiceInstallPath(serciecName) + strIniFileName; }

else //i18n

{

iniFilePath = HttpContext.Current.Request.PhysicalApplicationPath + strIniFileName;

}

}

#region 读写INI⽂件

/// <summary>

/// 读取INI⽂件

/// </summary>

/// <param name="IniKey"></param>

/// <returns></returns>

public string IniValue(string Section, string IniKey)

{

if (System.IO.File.Exists(iniFilePath))

{

System.IO.File.GetAccessControl(iniFilePath);

StringBuilder temp = new StringBuilder(500);

while (true)

{

try

{

GetPrivateProfileString(Section, IniKey, "", temp, 500, iniFilePath);

}

catch (Exception ex)

{

System.Threading.Thread.Sleep(50);

break;

}

break;

}

return temp.ToString();

}

else

return string.Empty;

}

/// <summary>

/// 写⼊INI⽂件

/// </summary>

/// <param name="Section">项⽬名称(如 [TypeName] )</param>

/// <param name="Key">键</param>

/// <param name="Value">值</param>

public void IniWriteValue(string Section, string Key, string Value)

{

if (System.IO.File.Exists(iniFilePath))

{

while (true)

{

try

{

WritePrivateProfileString(Section, Key, Value, iniFilePath);

}

catch

{

System.Threading.Thread.Sleep(50);

return;

}

return;

}

}

else

return;

}

public string[] GetSectionNames()

{

if (System.IO.File.Exists(iniFilePath))

{

byte[] byBuff = new byte[MAXENTRY];

GetPrivateProfileSectionNames(byBuff, MAXENTRY, iniFilePath);

return Encoding.Default.GetString(byBuff).Trim('\0').Split('\0');

}

else

{

string[] strReturn = new string[0];

return strReturn;

}

}

[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 WritePrivateProfileString(string section, string key, string val, string filePath);

[DllImport("kernel32")]

private static extern int GetPrivateProfileSectionNames(byte[] byRetBuff, int iSize, string filePath);

#endregion

static public string getXmlNodeValue(string filePath, string nodeName)

{

XmlDocument xmldoc = new XmlDocument();

xmldoc.Load(filePath);

XmlNodeList nodes = xmldoc.GetElementsByTagName("add");

string strvalue = "";

for (int i = 0; i < nodes.Count; i++)

{

XmlAttribute att = nodes[i].Attributes["key"];

if (att.Value == nodeName)

{

strvalue = nodes[i].Attributes["value"].Value;

}

}

return strvalue;

}

}

相关文档
最新文档