2013-10-14 147 views
1

我想從列表框中打印內容到文本文件,但它似乎不工作。 SortedFlats文本文件不顯示任何內容。c#將列表框內容寫入文本文件

protected void printImageButton_Click(object sender, ImageClickEventArgs e) 
{ 
    StreamWriter flatStreamWriter = new StreamWriter(Server.MapPath("~") + "SortedFlats.txt"); 
    for (int i = 0; i < flatListBox.Items.Count; i++) 
    { 
     flatStreamWriter.WriteLine(flatListBox.Items[i].ToString()); 
    } 
    flatStreamWriter.Close(); 
} 
+0

'Server.MapPath'?的WinForms? –

+0

對不起,這不是winforms。它是Web應用程序。 – user2699500

回答

3

很可能您需要發出Flush

但是,怎麼樣的東西多一點資源友好:

StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < flatListBox.Items.Count; i++) 
{ 
    sb.AppendLine(flatListBox.Items[i].ToString()); 
} 
File.WriteAllText("SortedFlats.txt"), sb.ToString()); 

使用File.WriteAllText你不必來管理自己的非託管資源。無論如何,你現在做錯了,因爲它沒有被包裹在using

最後,在winforms應用程序中不要使用Server.MapPath。這是爲了將虛擬網絡路徑映射到真實的物理路徑。