[英]c#: Delete a word from a .txt file
我正在尝试编写一个程序来从文本文件中删除一个单词,但是在运行它时没有从文本文件中删除任何内容。
这是我的代码:
string fileName = "\\\\itworks\\txt\\dlist_file.txt";
var selectedText = Objectt;
var selectedTextString = selectedText.ToString();
var unselectedLines = File.ReadAllLines(fileName).Where(l => l != selectedTextString);
File.WriteAllLines(fileName, unselectedLines);
文本文件dlist_file.txt
看起来像这样
hello
test
yeah
你的代码有几个问题。
1) 看起来您正在从网络驱动器读取数据。 ("\\\\itworks\\txt\\dlist_file.txt";)。 确保您有权访问该文件。
2)这一行没有意义。 var selectedText = Objectt; (什么是 Objectt?为什么它必须是一个对象,而不是一个字符串?)如果您试图定义一个过滤器,您可以将其定义为一个字符串数组。
3)此行不是必需的。 (var selectedTextString = selectedText.ToString());
4)你在这一行的意图是正确的。 但由于您定义 selectedTextString 变量的方式(var unselectedLines = File.ReadAllLines(fileName).Where(l => l != selectedTextString);)
5) 在这里,您将覆盖原始文件。 为什么不创建一个新文件并将现有文件与新文件进行比较? File.WriteAllLines(fileName, unselectedLines);
你能自己解决这些问题吗? 如果没有,我们可以帮助您。
除了这一行之外,代码在功能上没有任何问题:
var selectedText = Objectt;
我将代码复制并粘贴到 LINQPad 中并获得了所需的结果。
string fileName = @"C:\temp\Homework.txt";
var selectedText = "test";
var selectedTextString = selectedText.ToString();
var unselectedLines = File.ReadAllLines(fileName).Where(l => l != selectedTextString);
File.WriteAllLines(fileName, unselectedLines);
foreach (String line in File.ReadAllLines(fileName))
{
Console.WriteLine(line);
}
Console.ReadLine();
这是我的文件的内容:
hello
test
yeah
这是输出:
hello
yeah
也许存在权限问题或类似问题。 如果是这种情况,我希望您在尝试写入文件时会遇到异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.