ini文件读写

本文详细介绍了如何使用C#进行INI文件的读写操作,包括通过DllImport调用kernel32.dll中的WritePrivateProfileString和GetPrivateProfileString函数来实现。提供了完整的代码示例,展示了如何创建、读取和修改INI文件中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 C#怎样简单读写ini文件:

1、以下是我的ini文件Config.ini的格式。

[ScanPath]
Version=8

2、代码实现:

 1None.gif[DllImport("kernel32")]//返回0表示失败,非0为成功
 2None.gifprivate static extern long WritePrivateProfileString(string section,string key,string val,string filePath);
 3None.gif
 4None.gif[DllImport("kernel32")]//返回取得字符串缓冲区的长度
 5None.gifprivate static extern long GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);
 6None.gif
 7None.gif
 8ExpandedBlockStart.gifContractedBlock.gif/**//// <summary>写Ini文件
 9InBlock.gif/// </summary>
10InBlock.gif/// <param name="Section">开始节点</param>
11InBlock.gif/// <param name="Key">Key名</param>
12InBlock.gif/// <param name="Value">Key的值</param>
13InBlock.gif/// <param name="iniFilePath">init的文件路径</param>
14ExpandedBlockEnd.gif/// <returns>是否修改成功</returns> 

15None.gifpublic static bool WriteIniData(string Section, string Key, string Value, string iniFilePath)
16ExpandedBlockStart.gifContractedBlock.gifdot.gif{
17InBlock.gif    if (!File.Exists(iniFilePath))
18ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
19InBlock.gif        FileStream stream = File.Create(iniFilePath);
20InBlock.gif        stream.Close();
21ExpandedSubBlockEnd.gif    }

22InBlock.gif
23InBlock.gif    if (File.Exists(iniFilePath))
24ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
25InBlock.gif        long OpStation = WritePrivateProfileString(Section, Key, Value, iniFilePath);
26InBlock.gif        if (OpStation == 0)
27ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
28InBlock.gif            return false;
29ExpandedSubBlockEnd.gif        }

30InBlock.gif        else
31ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
32InBlock.gif            return true;
33ExpandedSubBlockEnd.gif        }

34ExpandedSubBlockEnd.gif    }

35InBlock.gif    else
36ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
37InBlock.gif        return false;
38ExpandedSubBlockEnd.gif    }

39ExpandedBlockEnd.gif}

40None.gif
41ExpandedBlockStart.gifContractedBlock.gif/**//// <summary>读Ini文件
42InBlock.gif/// </summary>
43InBlock.gif/// <param name="Section">父节点</param>
44InBlock.gif/// <param name="Key">Key节点</param>
45InBlock.gif/// <param name="iniFilePath">init的文件路径</param>
46ExpandedBlockEnd.gif/// <returns>返回读取到的值</returns>

47None.gifpublic static string ReadIniData(string Section,string Key,string iniFilePath)
48ExpandedBlockStart.gifContractedBlock.gifdot.gif{
49InBlock.gif    if(File.Exists(iniFilePath))
50ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
51InBlock.gif        StringBuilder temp = new StringBuilder(1024);
52InBlock.gif        GetPrivateProfileString(Section,Key,string.Empty,temp,1024,iniFilePath);
53InBlock.gif        return temp.ToString();
54ExpandedSubBlockEnd.gif    }

55InBlock.gif    else
56ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
57InBlock.gif        return String.Empty;
58ExpandedSubBlockEnd.gif    }

59ExpandedBlockEnd.gif}

60None.gif

 3、调用:

string ReadValue = IniFile.ReadIniData("ScanPath""Version""Config.ini");
输出结果:
8

IniFile.WriteIniData(
"ScanPath""Version""25""Config.ini");
string ReadValue = IniFile.ReadIniData("ScanPath""Version""Config.ini");
输出结果:
25

转载于:https://www.cnblogs.com/Martin_Q/archive/2010/11/12/1555347.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值