2016-04-12 16 views
0

sonra kod keser Kötü başlık için özür dilerim ama kısaca benim sorunumu nasıl tanımlayacağımı bilmiyorum.vb.net OpenTextFileWriter

Uygulamayı çalıştırdığımda. Metni dosyaya yazmadı. Kodun nerede kesildiğini görmek için MessageBox'ları ekledim. MsgBox 1 ve 2 gösterilir, ancak 3 değil. Bu nedenle, kod aşağıdaki gibi kesilir:

file = My.Computer.FileSystem.OpenTextFileWriter("C:\text.txt", True) 

Neden?

Form1.vb:

Public Class Form1 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Dim main As New Main() 
     Call main.Main() 
    End Sub 
End Class 

Main.vb:

Public Class Main 
Sub Main() 
    MessageBox.Show("1") 
    Dim file As System.IO.StreamWriter 
    MessageBox.Show("2") 
    file = My.Computer.FileSystem.OpenTextFileWriter("C:\text.txt", True) 
    MessageBox.Show("3") 
    file.WriteLine("Text") 
    file.Close() 
End Sub 
+0

Düğmeyi form yükünden bir düğüme taşıyın ve istisna görürsünüz. – Plutonix

+0

C: \ root dizininde bir dosya oluşturamazsınız, UAC tarafından korunmaktadır. Dosya için daha iyi bir yer bulun, AppData'ya aittir. Environment.GetFolderPath() kullanın. –

cevap

0

Ben senin hatayı almaya try..catch statetement ..not messagebox kullanımı tavsiye ederim, yakalayacak senin nedenin sorunu; örneğin: dosya mevcut değilse;

Public Class Main 
    Sub Main() 
     Dim file As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter("C:\text.txt", True) 
     Try 

      file.WriteLine("Text") 

     Catch ex As Exception 

      MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) 
     Finally 
      File.Close() 

     End Try 
    End Sub 

End Class 
+0

Oh, dosyanın otomatik olarak oluşturulacağını düşündüm. Dosyayı nasıl oluşturabilirim? – Craxxurz

+0

Sınıfınızdaki kodları kodlayın, yukarıdaki kodunuzu uygulamanıza ekleyin, gözden geçirin ve çalıştırın ... Biraz deneyin Okuma Yakala ve Son olarak, gelecekte size çok fazla başağrı kazandıracak – MarkAnderson2001