c#开发项目时经常用到配置,一般我们会根据具体项目需求,有时把配置写到数据库,有时写到web.config,有时定到ini文件中。在开发winform程序的时候我们最常用的就是定到app.config和ini文件中。今天我分享一个最好用最简单、最好用的ini配置文件辅助类,亲测好用。
public class IniFileHelper { #region API函数声明 [DllImport("kernel32")]//返回0表示失败,非0为成功 private static extern long WritePrivateProfileString(string section,string key, string val,string filePath); [DllImport("kernel32")]//返回取得字符串缓冲区的长度 private static extern long GetPrivateProfileString(string section,string key, string def,StringBuilder retVal,int size,string filePath); #endregion #region 读Ini文件 public static string ReadIniData(string Section,string Key,string NoText,string iniFilePath) { if(File.Exists(iniFilePath)) { StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(Section,Key,NoText,temp,1024,iniFilePath); return temp.ToString(); } else { return String.Empty; } } #endregion #region 写Ini文件 public static bool WriteIniData(string Section,string Key,string Value,string iniFilePath) { if(!File.Exists(iniFilePath)) { using(FileStream fs=new FileStream(iniFilePath,FileMode.Create,FileAccess.Write)) { fs.Close(); } } if(File.Exists(iniFilePath)) { long OpStation = WritePrivateProfileString(Section,Key,Value,iniFilePath); if(OpStation == 0) { return false; } else { return true; } } else { return false; } } #endregion }
读取节点信息:
IniFileHelper.ReadIniData("config", "lastPath", "", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "lahuseo.ini"));
程序自动到当前执行程序的根目录找文件名为”lanhuseo.ini“的文件,节点组为config,节点key为lastpath的值
更新节点信息:
IniFileHelper.WriteIniData("config", "lastPath" , txtLogDirOrFile.Text.Trim() , System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "lahuseo.ini"));
这样存的文件内容为:
[config]
lastPath=C:\Users\Administrator\Desktop\新建文件夹\W3SVC12
这里用到用到了DllImport直接用了windows系统内核的kernel32.dll的现成的两个方法,WritePrivateProfileString和GetPrivateProfileString。如果在写文件没有指定的文件会自动创建一个相应的ini文件,在读的时候没有文件直接返回空,当然这里你可以根据你的需要修改。