调用Windows API来处理这件事情,事情会变得简单。调用方式如下:
/// <summary>
/// 读取INI文件中的字符串
/// </summary>
[DllImport("KERNEL32.dll")]
public static extern uint GetPrivateProfileStringA(
string lpAppName,
string lpKeyName,
string lpDefault,
[MarshalAs(UnmanagedType.LPArray)] byte[] lpBuffer,
uint nSize,
string lpFileName);
/// <summary>
/// 读取INI文件中的整数
/// </summary>
[DllImport("KERNEL32.dll")]
public static extern uint GetPrivateProfileIntA(
string lpAppName,
string lpKeyName,
int nDefault,
string lpFileName);
[DllImport("KERNEL32.dll")]
public static extern bool WritePrivateProfileStringA(
string lpAppName, // section name
string lpKeyName, // key name
string lpString, // string to add
string lpFileName); // initialization file切记:从在GetPrivateProfileStringA函数中,从ini 文件读取的字符串处理要千万注意。
/// <summary>
/// 读取INI文件中的字符串
/// </summary>
[DllImport("KERNEL32.dll")]
public static extern uint GetPrivateProfileStringA(
string lpAppName,
string lpKeyName,
string lpDefault,
[MarshalAs(UnmanagedType.LPArray)] byte[] lpBuffer,
uint nSize,
string lpFileName);
/// <summary>
/// 读取INI文件中的整数
/// </summary>
[DllImport("KERNEL32.dll")]
public static extern uint GetPrivateProfileIntA(
string lpAppName,
string lpKeyName,
int nDefault,
string lpFileName);
[DllImport("KERNEL32.dll")]
public static extern bool WritePrivateProfileStringA(
string lpAppName, // section name
string lpKeyName, // key name
string lpString, // string to add
string lpFileName); // initialization file切记:从在GetPrivateProfileStringA函数中,从ini 文件读取的字符串处理要千万注意。
解决方案 »
- 判断输入用户名是否存在
- 高手的~~进来看看哦
- C#WinFrm如何把Work文档中的内容以二进制的格式保存到sql数据库,做过的朋友指点一下,谢谢
- 如何在 form1里操作form2的控件
- 用C# Console程序访问Web站点时,如何设置Session信息?
- 怎样将下面一段c语言程序,改成c#
- 100大元求《Professional Crystal Reports for Visual Studio .NET》
- 最新的.net框架是多少版本?1.1?????哪里有最新的?测试版也行
- WPF中动态加载的自定义按钮,点击触发时更改其标题如何实现
- vs2015怎么设置背景图后,在上面加控件?
- 如何在C#中引用DELPHI写的DLL。
- 大侠帮我看看:定义结构的问题
{
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,string key,string val,string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);
private string IniFilePath;
/// <summary>
/// 初始化Ini文件。
/// </summary>
/// <param name="IniFileName">Ini文件的路径及名称</param>
public AccessIni(string IniFileName)
{
IniFilePath=IniFileName;
if (!File.Exists(IniFilePath))
File.Create(IniFilePath);
}
/// <summary>
/// 为INI文件指定的节设置项和值。
/// </summary>
/// <param name="Section">INI文件中的小节名称</param>
/// <param name="Key">INI文件中的项名称</param>
/// <param name="KeyValue">INI文件中项的值名称</param>
/// <returns>标识完成状态,返回0表示写入失败,1为成功</returns>
public int WriteIni(string Section,string Key,string KeyValue)
{
int SucessMark=0;
string FileName = IniFilePath;
long wpp;
wpp=WritePrivateProfileString(Section,Key,KeyValue,FileName);
if (wpp!=0)
SucessMark=1;
System.Diagnostics.Trace.WriteLine(wpp.ToString());
return SucessMark;
}
/// <summary>
/// 返回INI文件中的节的某一项的值。
/// </summary>
/// <param name="section">INI文件中的小节名称</param>
/// <param name="key">INI文件中的项名称</param>
/// <returns>返回项的值,如果取错误也是返回空</returns>
public string GetIni(string section,string key)
{
StringBuilder GetS=new StringBuilder(255);
string FileName = IniFilePath;
GetPrivateProfileString(section,key,"",GetS,255,FileName);
return GetS.ToString();
}
}
和你问的一模一样!!