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#程序设计有所帮助。