【发布时间】:2019-10-18 05:15:11
【问题描述】:
我有一个代码,它遍历整个文本文件以搜索特定文本“[names]”,并“尝试”删除文本下方的所有行。我尝试了 File.WriteAllText(INILoc, string.Empty);,但这只会删除整个文本文件中的所有内容。我怎样才能做到只删除“[names]”下面的所有行?
我已经像这样设置了迭代:
string[] lines = File.ReadAllLines(INILoc);
bool containsSearchResul = false;
foreach (string line in lines)
{
if (containsSearchResul)
{
File.WriteAllText(INILoc, string.Empty);
}
if (line.Contains("[names]"))
{
containsSearchResul = true;
}
}
【问题讨论】:
-
欢迎来到 StackOverflow!熟悉 docs.microsoft.com 网站可能会有所帮助。 WriteAllText 方法的描述如下: 创建一个新文件,将内容写入文件,然后关闭文件。如果目标文件已经存在,则会被覆盖。 正如@Prasad 在他的回答中提到的,您传入的是 string.Empty,因此您的输出是一个空文件。
File类上没有内置方法来执行此操作,因此您必须像 Prasad 所做的那样“自行开发”。