现在,我想删除用户使用的 .txt 文件中的字符串。这是为了使其无法使用。
感谢 Tim Schmelter 提供更正的代码。
If .txt file.Contains(stN) Then
'Do anything here
'Then I want to remove the string used.
End If
现在,我想删除用户使用的 .txt 文件中的字符串。这是为了使其无法使用。
感谢 Tim Schmelter 提供更正的代码。
If .txt file.Contains(stN) Then
'Do anything here
'Then I want to remove the string used.
End If
您必须重写整个文件:
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())
文件不是基于行的(甚至不是基于字符的),因此您不能从中删除行。可能的最小更改是重写从该行开始到文件末尾的文件部分,这不是微不足道的。最简单的解决方案通常是重写整个文件。
读取文件,并在没有匹配行的情况下将其写回:
string[] lines = File.ReadAllLines(fileName);
lines = lines.Where(s => s != theString).ToArray();
File.WriteAllLines(fileName, lines);