C#实现利用Windows API读写INI文件的方法
本文实例讲述了C#实现利用WindowsAPI读写INI文件的方法。分享给大家供大家参考。具体如下:
写入时,如果没有INI文件,自动创建INI
如果在创建时,GetLastError:5检查IniPath是否添加了文件名称.ini
usingSystem; usingSystem.Collections.Generic; usingSystem.Text; usingSystem.IO; usingSystem.Runtime.InteropServices; namespaceNameSpace { ///<summary> ///利用WindowsAPI读写INI文件 ///写入时,如果没有INI文件,自动创建INI ///如果在创建时,GetLastError:5检查IniPath是否添加了文件名称.ini ///</summary> publicclassINI { //声明kernel32.dll函数 [DllImport("kernel32")] privatestaticexternlongWritePrivateProfileString(stringsection,stringkey,stringval,stringfilePath); [DllImport("kernel32")] privatestaticexternintGetPrivateProfileString(stringsection,stringkey,stringdef,StringBuilderretVal,intsize,stringfilePath); // [DllImport("kernel32")] publicstaticexternuintGetLastError(); stringIniPath=null; ///<summary> ///构造方法 ///</summary> ///<paramname="INIPath">INI文件的绝对路径,后面不需要斜杠</param> ///<paramname="INIFileName">INI文件名称使用时不需要斜杠,需要.ini</param> publicINI(stringINIPath,stringINIFileName) { Console.WriteLine("INIObjectbuilding"); IniPath=INIPath+"\\"+INIFileName; Console.WriteLine("INIFilePath:"+IniPath); } ///<summary> ///写入INI文件 ///</summary> ///<paramname="Section">Section</param> ///<paramname="Key">Key</param> ///<paramname="Value">Value</param> publicvoidIniWriteValue(stringSection,stringKey,stringValue) { Console.WriteLine("---IniWriteValue---"); Console.WriteLine("Section:"+Section); Console.WriteLine("Key:"+Key); Console.WriteLine("Value:"+Value); Console.WriteLine("IniPath:"+IniPath); UInt32Snapshot=GetLastError(); // WritePrivateProfileString(Section,Key,Value,IniPath); if(Snapshot!=GetLastError()) { Console.WriteLine("GetLastError:"+GetLastError()); } } ///<summary> ///读出INI文件 ///</summary> ///<paramname="Section">Section</param> ///<paramname="Key">Key</param> publicstringIniReadValue(stringSection,stringKey) { StringBuilderresult=newStringBuilder(256); GetPrivateProfileString(Section,Key,null,result,256,IniPath); returnresult.ToString(); } publicboolExistINIFile() { returnFile.Exists(IniPath); } ///<summary> ///creatconfigfiletoapplicationini ///</summary> ///<paramname="dnf_path"></param> publicvoidCreateConfig(stringIP) { Console.WriteLine("CreateConfig"); Console.WriteLine("IP:"+IP); try { WriteConfigIP(IP); if(ExistINIFile()) { Console.WriteLine("配置文件创建成功"); } else { Console.WriteLine("配置文件创建不成功"); } } catch(Exceptionerr) { Console.WriteLine("出错信息:"+err.ToString()); } } ///<summary> ///writeconfigforipinformation ///</summary> ///<paramname="IP"></param> publicvoidWriteConfigIP(stringIP) { stringSection="Config"; stringKey="IP"; stringValue=IP; try { IniWriteValue(Section,Key,Value); } catch(Exceptionerr) { Console.WriteLine("出错信息:"+err.ToString()); } } publicstringReadConfigIP() { try { stringSection="Config"; stringresult=IniReadValue(Section,"IP"); Console.WriteLine("ReadConfigIPResult:"+result); returnresult; } catch(Exceptionerr) { Console.WriteLine("出错信息:"+err.ToString()); return"ReadError"; } } } }
希望本文所述对大家的C#程序设计有所帮助。