在C#中操作INI文件,你可以使用`System.IO`命名空间下的类来读写文件内容,但处理INI文件的解析和格式化通常需要自定义一些逻辑,因为.NET标准库中没有直接支持INI文件的类。下面是一个简单的C#示例,展示如何读取和写入INI文件。
### 读取INI文件
首先,我们需要一个方法来读取INI文件并解析其内容。这里,我们使用`Dictionary
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
public class IniFile
{
private Dictionary<string, Dictionary<string, string>> data = new Dictionary<string, Dictionary<string, string>>();
public void Read(string filePath)
{
data.Clear();
if (!File.Exists(filePath))
throw new FileNotFoundException("INI file not found.", filePath);
string[] lines = File.ReadAllLines(filePath);
string currentSection = null;
foreach (string line in lines)
{
if (string.IsNullOrWhiteSpace(line))
continue;
if (line.StartsWith(";") || line.StartsWith("#")) // 忽略注释
continue;
if (line.StartsWith("[") && line.EndsWith("]"))
{
currentSection = line.Trim('[', ']');
if (!data.ContainsKey(currentSection))
data[currentSection] = new Dictionary<string, string>();
}
else
{
string[] parts = line.Split(new[] { '=' }, 2, StringSplitOptions.None);
if (parts.Length == 2)
{
string key = parts[0].Trim();
string value = parts[1].Trim();
if (currentSection != null && data.ContainsKey(currentSection))
data[currentSection][key] = value;
}
}
}
}
// 示例方法,用于获取某个节下的某个键的值
public string GetValue(string section, string key)
{
if (data.TryGetValue(section, out Dictionary<string, string> sectionData) &&
sectionData.TryGetValue(key, out string value))
{
return value;
}
return null;
}
// 可以在这里添加更多方法来操作INI文件,如写入、修改等
}
// 使用示例
class Program
{
static void Main(string[] args)
{
IniFile iniFile = new IniFile();
iniFile.Read("example.ini");
string value = iniFile.GetValue("Settings", "FontSize");
Console.WriteLine($"Font Size: {value}");
}
}
### 写入INI文件
写入INI文件时,你可以根据`data`字典中的内容来构建字符串,并将其写入文件。这里不提供完整的写入示例,但基本的思路是遍历字典,按照INI文件的格式构建字符串,并使用`File.WriteAllText`方法写入文件。
注意:上面的示例代码主要关注于INI文件的读取和简单查询,并未涵盖写入操作的完整实现。在实际应用中,你可能需要根据具体需求对INI文件的读写操作进行更详细的实现和错误处理。