当前位置:编程学习 > C#/ASP.NET >>

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;  
     }  
  
 }  

 

补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,