我正在使用 c# 讀取一些 txt 檔案并在其中寫入/洗掉一些行我必須讀取一個文本檔案,洗掉其中的一些行,然后將其再次保存在同一路徑中。一切都很好,直到我意識到它不會讀取空行或新行中只有一個空格:(。
這是我的文本檔案結構:
-Name
-LastName
-Age
-Phone
-Address
-Address2(optional) -// this line will be deleted
-Address3(optional) -// this line will be deleted
****here comes the empty line****
這是我的代碼:
List<string> myLines = File.ReadAllLines(path).ToList();
if (myLines.Count > 5)
{
for(int i = 7; i >= 5; i--)
{
myLines.RemoveAt(i);
}
File.WriteAllLines(path, myLines.ToArray());
}
所以我不知道為什么當我運行 File.ReadAllLines 會給我 7 行(忽略空白行),當然在我洗掉檔案中的某些內容后,空白行仍然存在。
注意:我正在處理超過 10 萬個檔案,無論哪種方式,我都會手動洗掉該特定行。
你能幫我解決這個問題并洗掉那個空行嗎?謝謝你。
uj5u.com熱心網友回復:
這是一些代碼:
var f = @"-Name
-LastName
-Age
-Phone
-Address
-Address2(optional) -// this line will be deleted
-Address3(optional) -// this line will be deleted
-Name2";
File.WriteAllText(@"C:\temp\a.txt", f);
var f2 = File.ReadAllLines(@"C:\temp\a.txt").ToList();
f2.RemoveAt(7);
f2.RemoveAt(6);
f2.RemoveAt(5);
File.WriteAllLines(@"C:\temp\b.txt", f2);
在 c:\temp 中打開兩個生成的檔案 a.txt 和 b.txt(確保你有 ac:\temp) - a 有空行,b 沒有臨時空行或 address2/3

..但請注意 b 末尾有一個空行,因為File.WriteAllLines將用 CRLF 結束最后一行(在我的示例中為 Name2)。
如果這是您正在談論的/您不想要的,請考慮其他內容,也許:
File.WriteAllText(@"C:\temp\b.txt", string.Join(Environment.NewLine, f2));
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/427705.html
上一篇:os.rename()函式導致FileNotFoundError
下一篇:替換單詞后如何覆寫檔案?
