2013-11-23 5 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 파일 처리 방법을 사용하려고합니다. 나는 '나의 것'아래에있는 모든 것들이 레거시 VB6이라고 믿는다. 대신에'IO.File'을 사용하십시오. – Neolisk

+0

@Neolisk 'Microsoft.VisualBasic.Compatibility'에 대해 생각하고 있다고 생각합니다. 'My'는 다른 것입니다 : http://stackoverflow.com/questions/195450/do-you-use-the-my-namespace-in-vb-net –

답변

3

파일에 텍스트를 prexistent 또는 새 데이터로 모든 것을 덮어 추가하는 기능을 가지고 있습니다 OpenTextFileWriter 방법.

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