c# winform程序读写ini配置文件 - 知乎

使用settings.settings来保存数据库配置等信息的。但是设置为“应用程序”级别,就没法方便的用 Properties.Settings.Default.Save() 更改保存。且没法在程序不重启的情况下应用修改后的配置。如果设置为“用户”级别,就存在配置信息保存到appData文件夹下被清空缓存失效的风险。因此回过头来选择ini来保存这些配置信息

usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.IO; usingSystem.Runtime.InteropServices; namespacedata_migration_desk.utils { //INI文件操作类 classIniFileHelper { stringstrIniFilePath;//ini配置文件路径 //返回0表示失败,非0为成功 [DllImport("kernel32",CharSet=CharSet.Auto)] privatestaticexternlongWritePrivateProfileString(stringsection,stringkey,stringval,stringfilePath); //返回取得字符串缓冲区的长度 [DllImport("kernel32",CharSet=CharSet.Auto)] privatestaticexternlongGetPrivateProfileString(stringsection,stringkey,stringstrDefault,StringBuilderretVal,intsize,stringfilePath); [DllImport("Kernel32.dll",CharSet=CharSet.Auto)] publicstaticexternintGetPrivateProfileInt(stringsection,stringkey,intnDefault,stringfilePath); ///<summary> ///无参构造函数 ///</summary> ///<returns></returns> publicIniFileHelper() { this.strIniFilePath=Directory.GetCurrentDirectory()+"\\Properties\\sysconfig.ini"; } ///<summary> ///有参构造函数 ///</summary> ///<paramname="strIniFilePath">ini配置文件路径</param> ///<returns></returns> publicIniFileHelper(stringstrIniFilePath) { if(strIniFilePath!=null) { this.strIniFilePath=strIniFilePath; } } ///<summary> ///获取ini配置文件中的字符串 ///</summary> ///<paramname="section">节名</param> ///<paramname="key">键名</param> ///<paramname="strDefault">默认值</param> ///<paramname="retVal">结果缓冲区</param> ///<paramname="size">结果缓冲区大小</param> ///<returns>成功true,失败false</returns> publicboolGetIniString(stringsection,stringkey,stringstrDefault,StringBuilderretVal,intsize) { longliRet=GetPrivateProfileString(section,key,strDefault,retVal,size,strIniFilePath); return(liRet>=1); } ///<summary> ///获取ini配置文件中的整型值 ///</summary> ///<paramname="section">节名</param> ///<paramname="key">键名</param> ///<paramname="nDefault">默认值</param> ///<returns></returns> publicintGetIniInt(stringsection,stringkey,intnDefault) { returnGetPrivateProfileInt(section,key,nDefault,strIniFilePath); } ///<summary> ///往ini配置文件写入字符串 ///</summary> ///<paramname="section">节名</param> ///<paramname="key">键名</param> ///<paramname="val">要写入的字符串</param> ///<returns>成功true,失败false</returns> publicboolWriteIniString(stringsection,stringkey,stringval) { longliRet=WritePrivateProfileString(section,key,val,strIniFilePath); return(liRet!=0); } ///<summary> ///往ini配置文件写入整型数据 ///</summary> ///<paramname="section">节名</param> ///<paramname="key">键名</param> ///<paramname="val">要写入的数据</param> ///<returns>成功true,失败false</returns> publicboolWriteIniInt(stringsection,stringkey,intval) { returnWriteIniString(section,key,val.ToString()); } } }

读取:

IniFileHelperiniFileHelper=newIniFileHelper(); StringBuildersb=newStringBuilder(60); iniFileHelper.GetIniString("tokeninfo","apiUrl","",sb,sb.Capacity); stringaaa=sb.ToString();

写入:

IniFileHelperiniFileHelper=newIniFileHelper(); iniFileHelper.WriteIniString("tokeninfo","apiUrl","newString");

技术群:添加小编微信并备注进群

小编微信:mm1552923

公众号:dotNet编程大全


原网址: 访问
创建于: 2023-06-15 15:11:05
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论