2013-10-14 90 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。这是为了将虚拟网络路径映射到真实的物理路径。