读取没有任何部分的ini文件?

时间:2012-03-13 14:41:32

标签: c# .net-4.0 ini

我的ini文件没有任何部分。它有以下数据

com.ibm.rcp.toolbox.admin/toolboxvisibleChild=false
com.ibm.collaboration.realtime.community/defaultAuthType=ST-DOMINO-SSO
com.ibm.collaboration.realtime.brokerbridge/startBroker=false
com.ibm.collaboration.realtime.webapi/startWebContainer=true

我想使用功能。

    [DllImport("kernel32")]
    private static extern int GetPrivateProfileString(string section,
             string key,string def, StringBuilder retVal,
        int size,string filePath);

我的问题

  1. 我不能在函数中给出节名,因为我没有任何
  2. 如果我将节名称为null,则不返回任何内容
  3. 我不想像ReadAllText那样使用蛮力

2 个答案:

答案 0 :(得分:3)

使用File.ReadLines和一些LINQ实际上并没有那么糟糕:

var dict = File.ReadLines("config.txt")
               .Where(line => !string.IsNullOrWhiteSpace(line))
               .Select(line => line.Split(new char[] { '=' }, 2, 0))
               .ToDictionary(parts => parts[0], parts => parts[1]);

var result = dict["com.ibm.rcp.toolbox.admin/toolboxvisibleChild"];

答案 1 :(得分:2)

Here's作者所说的库支持无节键。我自己没有尝试过这个图书馆 或者,您只需编辑Ini文件并在顶部添加“标题”/部分名称,然后在阅读完后删除它。