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