-1

现在,我想删除用户使用的 .txt 文件中的字符串。这是为了使其无法使用。


感谢 Tim Schmelter 提供更正的代码

If .txt file.Contains(stN) Then
    'Do anything here
    'Then I want to remove the string used.
End If
4

2 回答 2

2

您必须重写整个文件:

Dim newLines = File.ReadAllLines(path).
    .Where(Function(l) Not l.Trim.Equals(stN, StringComparison.OrdinalIgnoreCase) )
File.WriteAllLines(path, newLines)

如果您不想使用 Trim 和不区分大小写的比较:

.Where(Function(l) l <> stN)

编辑:您使用的是 .NET 3.5 吗?然后File.WriteAllLines不接受一个IEnumerable(Of String)但只有String()。您需要从查询中创建一个:

File.WriteAllLInes(path, newLines.ToArray())
于 2013-09-07T21:33:59.367 回答
0

文件不是基于行的(甚至不是基于字符的),因此您不能从中删除行。可能的最小更改是重写从该行开始到文件末尾的文件部分,这不是微不足道的。最简单的解决方案通常是重写整个文件。

读取文件,并在没有匹配行的情况下将其写回:

string[] lines = File.ReadAllLines(fileName);
lines = lines.Where(s => s != theString).ToArray();
File.WriteAllLines(fileName, lines);
于 2013-09-07T21:37:15.103 回答