用C#如何读写配置文件?

如题所述

INI文件就是扩展名为"ini"的文件。
  其一般形式如下:
[section1] // 配置节
//键名 //键值
keyword1 = valuel
keyword2 = value2
……
[section2]
keyword3 = value3
keyword4 = value4
  在Windows系统中,INI文件是很多,最重要的就是"System.ini"、"System32.ini"和"Win.ini"。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置。但自从Windows 95的退出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初始化信息放进了注册表中。以及XML文件的国际标准化给INI文件又一次打击。
  但在某些场合,INI文件还拥有其不可替代的地位。比如绿色软件的规定就是不向注册表和系统中填入新东西。对于软件需要储存的信息就需要存入到文件中了。XML虽然兼容性比较好,但对于仅仅保存几个自定义参数而言就显得大材小用了。这是就可以选择使用快速简单的储存方式:INI文件。
  本文就来探讨一下C#是如何对INI进行读写操作。
  主要思路是调用Win32 API。
1.引入命名空间
usingSystem.Runtime.InteropServices;
2.声明(把一个Win32 API函数转成C#函数)
//声明INI文件的写操作函数 WritePrivateProfileString()
[DllImport("kernel32")]
private static extern longWritePrivateProfileString(string section, string key, string val, stringfilePath);
//声明INI文件的读操作函数 GetPrivateProfileString()
[DllImport("kernel32")]
private static extern intGetPrivateProfileString(string section, string key, string def, StringBuilderretVal, int size, string filePath);
3.函数
public void Writue(string section,string key, string value)
{
// section=配置节,key=键名,value=键值,path=路径
WritePrivateProfileString(section,key, value, sPath);
}
public string ReadValue(stringsection, string key)
{
// 每次从ini中读取多少字节
System.Text.StringBuilder temp =new System.Text.StringBuilder(255);
// section=配置节,key=键名,temp=上面,path=路径
GetPrivateProfileString(section,key, "", temp, 255, sPath);
returntemp.ToString(); //注意类型的转换
}
到此基本功能已经实现了。下面我们将所有的代码重新整合一下:
namespace Library.File
{
public class Ini
{
// 声明INI文件的写操作函数 WritePrivateProfileString()
[System.Runtime.InteropServices.DllImport("kernel32")]
private static extern longWritePrivateProfileString(string section, string key, string val, stringfilePath);
// 声明INI文件的读操作函数 GetPrivateProfileString()
[System.Runtime.InteropServices.DllImport("kernel32")]
private static extern intGetPrivateProfileString(string section, string key, string def,System.Text.StringBuilder retVal, int size, string filePath);
private string sPath = null;
public Ini(string path)
{
this.sPath = path;
}
public void Writue(string section,string key, string value)
{
// section=配置节,key=键名,value=键值,path=路径
WritePrivateProfileString(section,key, value, sPath);
}
public string ReadValue(stringsection, string key)
{
// 每次从ini中读取多少字节
System.Text.StringBuilder temp =new System.Text.StringBuilder(255);
// section=配置节,key=键名,temp=上面,path=路径
GetPrivateProfileString(section,key, "", temp, 255, sPath);
return temp.ToString();
}
}
}
  开始调用函数。
// 写入ini
Ini ini = newIni("C:/config.ini");
ini.Writue("Setting","key1", "HELLO WORLD!");
ini.Writue("Setting","key2", "HELLO CHINA!");
// 读取ini
Ini ini = newIni("C:/config.ini");
string str1 =ini.ReadValue("Setting", "key1");
MessageBox.Show(str1);
  二,在一些小的应用中,有时候不需要使用数据困这样大规模的数据管理工具,也很少进行数据的查询、修改等操作,而仅用文件来存储数据。这时就需要使用。net中的文件操作对象,如file、streamReader、streamWriter等。
1,使用File对象操作文件
System.IO.File类提供了一系类的静态办法,完成对晚间的常用操作,如新建、删除、拷贝、移动等
2,使用StreamWriter写入文件
  在System.IO空间中定义了一个文件写入器对象StreamWriter,使用它可以以一种特定的编码向输出流中(Stream)写入字符。
3,使用SteamReader读取文件
  与streamWrite对应
温馨提示:内容为网友见解,仅供参考
无其他回答

C#读写config配置文件的方法
C#读写config配置文件的方法 如下所示:对config配置文件的读写类:(连起来看)测试代码如下:以上这篇C#读写config配置文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考

C# 配置文件读写模块 (简单高效)
例如,系统项目部署时,我们需要设置数据库的连接IP,并保存在本地文件中随系统启用时自动调用。这在C\/S项目中很常见。当程序需要应用到不同的工作场所时,如果将数据库的Connectstring固定写死在代码中显然是不合适的,这时就需要写入配置文件了。可以使用如下方法:(例1)它生成的xml如下:可以看到,Q...

C#读写INI文件的最简方法
在C#中,虽然.NET框架并未直接提供对INI文件的内置支持,但可以通过以下两种简便途径实现INI文件的读写:1. 使用Microsoft.VisualBasic命名空间提供的API 尽管名为Visual Basic,但此命名空间中的类库在C#中同样可用。其中包含了对INI文件操作的便捷方法,无需额外引入外部库或编写复杂的P\/Invoke代码。以下...

用C#如何读写配置文件
\/\/ 读取ini Ini ini = newIni("C:\/config.ini");string str1 =ini.ReadValue("Setting", "key1");MessageBox.Show(str1);二,在一些小的应用中,有时候不需要使用数据困这样大规模的数据管理工具,也很少进行数据的查询、修改等操作,而仅用文件来存储数据。这时就需要使用。net中的文件操作对...

C# XMl读写配置文件
<config> <serv_ip>192.168.0.1<\/serv_ip> <connect_time>30<\/connect_time> <refresh_time>60<\/refresh_time> <serv_port>3000<\/serv_port><\/config>一般像这样就行了 很简单的 或者多个配置你可以加个item标签如:<config> <item> <serv_ip>192.168.0.1<\/serv_ip...

c#读取Config文件的问题
这错误要么就是你的sql配置文件路径不对,要么就是配置文件内部格式不正确。你只贴出了堆栈,没有贴出错误信息,看不出是什么错误。ibatis是开源的,可以下载源代码加入工程,一起调试,就知道哪错了。

C# 创建,保存,读取,配置文件?简单小事 各位帮下忙
用System.IO,把那些值放到一个数组了 string[] values = new string[]{"12","45",...};然后用File.WriteAllLines(filePath, values)就可以创建文件 读取时就用File.ReadAllLines(filePath)就得到原来的数组,依次赋值到Y1~Y6

如何在C#控制台程序中读取配置文件中的信息?
配置文件App.config如下:<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="InvariantInfo" value="true"\/> <\/appSettings> <\/configuration> 使用 if (ConfigurationManager.AppSettings["InvariantInfo"] != "false"){ } 绝对没问题的,我都取过N遍了,不行你...

如何用c#ConfigManager读写配置文件
ConfigManager对象的appSettings[name]属性来获取节点对象,然后对节点进行操作就是了,很简单的,百度上也很多资料!!

c# 配置文件读取问题
给你个方法吧,这方法是实现设置的,你改成读取的就行,能读到配置的话就没问题了吧?\/\/\/ \/\/\/ 设置 AppSetting 配置值 \/\/\/ \/\/\/ 配置键 \/\/\/ 配置值 public static void SetAppConfig(string strKey, string strValue){ string filePath = System.Web.HttpContext.Current.Server.MapPath("...

相似回答