c#:从.txt文件中删除一个单词

时间:2015-11-18 21:17:51

标签: c#

我正在尝试编写一个程序来删除文本文件中的一个单词,但在运行它时,不会从文本文件中删除任何单词。

这是我的代码:

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

2 个答案:

答案 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 

可能存在权限问题或类似问题。如果情况确实如此,我希望你在尝试编写文件时会遇到异常。