簡體   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