zoukankan      html  css  js  c++  java
  • 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('').Split('');
                }
                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;
            }
    
        }



  • 相关阅读:
    javascript对象继承的实现
    浏览器兼容问题汇总<转>
    DOM笔记
    Ajax日记
    学习态度
    项目1
    导航项目-整体布局
    有关布局
    导航项目开始
    windows 服务 定时程序 跑不出数据
  • 原文地址:https://www.cnblogs.com/james1207/p/3313275.html
Copyright © 2011-2022 走看看