我正在尝试编写一个程序来删除文本文件中的一个单词,但在运行它时,不会从文本文件中删除任何单词。
这是我的代码:
int l = left+1;
文本文件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
答案 0 :(得分:0)
您的代码存在一些问题。
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);
你能自己纠正这些问题吗?如果没有,我们可以帮助您。
答案 1 :(得分:0)
除了这行之外,代码没有任何功能上的错误:
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
可能存在权限问题或类似问题。如果情况确实如此,我希望你在尝试编写文件时会遇到异常。