2016-04-12 12 views
0

悪いタイトルで申し訳ありませんが、私は自分の問題を簡単に記述する方法を知らない。vb.net OpeningTextFileWriterの後のコード割り込み

私はアプリケーションを実行します。それはファイルにテキストを書き込まなかった。 MessageBoxのコードを追加して、コードがどこに割り込むのかを確認しました。 MsgBox 1と2は表示されていますが、3は表示されていません。したがって、コードは後で中断します:

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

なぜですか?

Form1.vbを:

​​

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

コードをフォームロードからボタンクリックに移動すると例外が表示されます。 – Plutonix

+0

ファイルをC:\ rootディレクトリに作成することはできません。ファイルはUACによって保護されています。ファイルのより良い場所を見つけると、それはAppDataに属します。 Environment.GetFolderPath()を使用します。 –

答えて

0

私はあなたのエラーを取得するためのtry..catch statetementの..notのメッセージボックスを使用することをお勧めします、それはあなたをキャッチします原因の問題。例:ファイルが存在しない場合。

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

ああ、私はファイルが自動的に作成されると思った。どのようにファイルを作成できますか? – Craxxurz

+0

上記のようなクラス、コードのコードをあなたのアプリにコメントアウトして、改訂して実行してください...少しキャッチしてみてください。 – MarkAnderson2001

関連する問題