用 C# 替换文件中包含特定字符串的行
Replace line in file containing specific string w/ C#
我有一个配置文件,其中每一行都是一个设置和值组合。我不知道设置的值是什么,但是我知道设置的名称,我需要在其中更新整行。我发现了很多使用 File.ReadAllText.Replace 和 File.WriteAllText 的例子,但这些都是用另一个字符串替换特定的字符串。
示例设置行:
Server.ServerType=official
我需要找到包含 "Server.ServerType=" 的行,在本例中我会将其替换为 "Server.ServerType=modded"。
使用 C# 执行此操作的最简单方法是什么?
在“=”符号上拆分行,然后使用第一个元素进行测试并根据需要更改第二个元素,然后通过替换“=”符号加入。我使用了一个开关假设你将有多个测试(比很多 IF/THENs 更容易):
string line = ReadLine();
string[] parts = line.Split('=');
switch(parts[0]){
case "Server.ServerType":
parts[1] = "modded";
break;
....
}
string newline = String.Join("=",parts);
WriteLine(newline);
如果多次更改值,您可以使用:
Dictionary<string,string> values = new Dictionary<string,string>
string[] parts = Readline().Split('=');
values.Add(parts[0],parts[1]);
values["Server.ServerType"] = "modded";
....
foreach(KeyValuePair<string,string> kvp in values){
WriteLine(kvp.Key+"="+kvp.Value);
}
我有一个配置文件,其中每一行都是一个设置和值组合。我不知道设置的值是什么,但是我知道设置的名称,我需要在其中更新整行。我发现了很多使用 File.ReadAllText.Replace 和 File.WriteAllText 的例子,但这些都是用另一个字符串替换特定的字符串。
示例设置行:
Server.ServerType=official
我需要找到包含 "Server.ServerType=" 的行,在本例中我会将其替换为 "Server.ServerType=modded"。
使用 C# 执行此操作的最简单方法是什么?
在“=”符号上拆分行,然后使用第一个元素进行测试并根据需要更改第二个元素,然后通过替换“=”符号加入。我使用了一个开关假设你将有多个测试(比很多 IF/THENs 更容易):
string line = ReadLine();
string[] parts = line.Split('=');
switch(parts[0]){
case "Server.ServerType":
parts[1] = "modded";
break;
....
}
string newline = String.Join("=",parts);
WriteLine(newline);
如果多次更改值,您可以使用:
Dictionary<string,string> values = new Dictionary<string,string>
string[] parts = Readline().Split('=');
values.Add(parts[0],parts[1]);
values["Server.ServerType"] = "modded";
....
foreach(KeyValuePair<string,string> kvp in values){
WriteLine(kvp.Key+"="+kvp.Value);
}