[英]C# StreamWriter not writing to file
basicLog是名稱和時間戳的列表。 我想把它們寫到一個文件中。 我得到的兩個錯誤是';' 在StreamWriter行和'file'上。 在第二行。
';' 錯誤是:可能出錯的空語句文件中的錯誤是:當前上下文中不存在名稱“file”。
文件創建得很好,但沒有任何內容寫入它。 我對當前上下文中不存在的文件感到困惑,因為在創建之前的行上。 感謝您的任何幫助。
foreach (BasicLog basicLog in emailAttach)
{
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\sorted.txt", true));
file.WriteLine(basicLog.LastName + " - " + basicLog.InOrOut + " - " + basicLog.EventTime + "\n");
}
是的,你確實有一個錯誤的空聲明。
去除 ';' 並縮進以顯示原因:
foreach (BasicLog basicLog in emailAttach)
{
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(@"C:\\sorted.txt", true)) //;
{
file.WriteLine(basicLog.LastName + " - " + basicLog.InOrOut + " - "
+ basicLog.EventTime + "\n");
}
}
WriteLine()語句(應該)在using()的控制之下。 {}
使得更清楚。
這將有效,但請注意,它是非常低效的,您要重新打開文件(for append)多次。
因此最好反轉foreach / using:
using (System.IO.StreamWriter file =
new System.IO.StreamWriter(@"C:\\sorted.txt", true))
{
foreach (BasicLog basicLog in emailAttach)
{
file.WriteLine(basicLog.LastName + " - " + basicLog.InOrOut + " - "
+ basicLog.EventTime + "\n");
}
}
哎呀在使用線的末尾有一個分號???
也許你的意圖是:
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\sorted.txt", true))
{
foreach (BasicLog basicLog in emailAttach)
{
file.WriteLine(basicLog.LastName + " - " + basicLog.InOrOut + " - " + basicLog.EventTime + "\n");
}
}
好奇,今天早上發生了同樣的事情:-)
您的file
實例將在此行之后立即獲得Disposed(因為您正在using
):
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\sorted.txt", true));
將其更改為
System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\sorted.txt", true);
或完整的代碼,
System.IO.StreamWriter file;
foreach (BasicLog basicLog in emailAttach)
{
file = new System.IO.StreamWriter(@"C:\\sorted.txt", true);
file.WriteLine(basicLog.LastName + " - " + basicLog.InOrOut + " - " + basicLog.EventTime + "\n");
}
或者正確using
foreach (BasicLog basicLog in emailAttach)
{
using(System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\sorted.txt", true))
{
file.WriteLine(basicLog.LastName + " - " + basicLog.InOrOut + " - " + basicLog.EventTime + "\n");
}
}
在寫入文件之前,您正在處理StreamWriter
。 重構到這個:
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\\sorted.txt", true))
{
foreach (BasicLog basicLog in emailAttach)
{
file.WriteLine(basicLog.LastName + " - " + basicLog.InOrOut + " - " + basicLog.EventTime + "\n");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.