繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM