2013-11-23 114 views
1

每當我第一次將我的標籤保存在我的文本文件中時,它都能正常工作。覆蓋Visual Basic中的文件

後來,當我做一些修改,然後再次嘗試保存它,它只是把所有的東西海誓山盟後面。

我已經搜查,但未能找到一種方法,只是簡單地覆蓋完整的文件,我該怎麼辦呢?我目前的代碼是:

Dim file As System.IO.StreamWriter 
    file = My.Computer.FileSystem.OpenTextFileWriter("D:\Documenten\test.txt", True) 
    file.WriteLine("Last Generated Child") 
    file.WriteLine(Code.Text) 
    file.WriteLine("All Available Parents") 
    file.WriteLine(Parent1Code.Text) 
    file.WriteLine(Parent2Code.Text) 
    file.WriteLine(Parent3Code.Text) 
    file.WriteLine(Parent4Code.Text) 
    file.WriteLine(Parent5Code.Text) 
    file.WriteLine(Parent6Code.Text) 
    file.Close() 

另一件可行的方法是覆蓋特定的行。

謝謝:)

+2

'File.WriteAllText '或'File.WriteAllLines' –

+0

您正在嘗試使用傳統的VB6處理文件的方式。我相信'My.'下的所有東西都是傳統的VB6。改用'IO.File'。 – Neolisk

+0

@Neilisk我認爲你正在考慮'Microsoft.VisualBasic.Compatibility'。 '我的'是別的東西:http://stackoverflow.com/questions/195450/do-you-use-the-my-namespace-in-vb-net –

回答

3

OpenTextFileWriter已追加到prexistent文本文件或用新數據覆蓋一切的能力的方法。

您正在使用Append參數設置爲True。
因此,每次寫入文件時,都會將文本附加到文件的當前內容。

如果要覆蓋然後只是改變

file = My.Computer.FileSystem.OpenTextFileWriter("D:\Documenten\test.txt", False) 

另外,我建議附上一個您Using statement block到的StreamWriter確保正確的關閉和你流的處置

Using file = My.Computer.FileSystem.OpenTextFileWriter("D:\Documenten\test.txt", True) 
    file.WriteLine("Last Generated Child") 
    file.WriteLine(Code.Text) 
    file.WriteLine("All Available Parents") 
    ..... 
End Using