读取没有任何节的ini文件

本文关键字:ini 文件 任何节 读取 | 更新日期: 2023-09-27 18:27:50

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

com.ibm.rcp.toolbox.admin/toolboxvisibleChild=falsecom.ibm.collaboration.retime.community/defaultAuthType=ST-DOMINO-SSOcom.ibm.collaboration.retime.brokerbridge/startBroker=falsecom.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那样使用暴力

读取没有任何节的ini文件

使用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"];

这里有一个库,作者说它支持无节键。我自己没有试过这个图书馆
或者,你可以简单地编辑Ini文件,在顶部添加一个"标题"/节名,然后在阅读完成后将其删除。