- ベストアンサー
ファイルをクローズしたい
- Visual Studio 2010 VB.NETでファイルを書き込む際に、ファイルをクローズする方法を教えてください。
- OpenTextFileWriterを使用してファイルにデータを書き込んだ後、ファイルを確実にクローズするにはどうすればいいですか?
- Try, Catch, FinallyのFinallyブロックでファイルをクローズする方法について教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
オブジェクトの初期化をtryの中で記述すると、警告が出ますよ。
その他の回答 (3)
- todo36
- ベストアンサー率58% (728/1234)
> Dim tw As System.IO.TextWriter Dim tw As System.IO.TextWriter = Nothing > tw.Close() If tw IsNot Nothing Then tw.Close() とすればよい。 それよりUsing文で書くと簡単です。 Try data = "abcd" Using tw As TextWriter = My.Computer.FileSystem.OpenTextFileWriter(wfileNamePath, True, System.Text.Encoding.Default) tw.WriteLine(data) End Using Catch ex As Exception MsgBox("エラー発生") End Try ※ End Usingで確実にDisposeが呼ばれるので、明示的にCloseする必要がない。 Usingステートメントで簡単、確実にファイルをクローズ http://www.atmarkit.co.jp/fdotnet/vb2005/vb2005_05/vb2005_05_01.html
お礼
usingの具体的使用方法、参考HPを教えていただきまして本当にありがとうございました。
- Yune-Kichi
- ベストアンサー率74% (465/626)
通常はTry-Finallyの代わりにUsingを使えば事足ります。 Using tw As TextWriter = My.Computer.FileSystem.OpenTextFileWriter(wfileNamePath, True, System.Text.Encoding.Default) tw.WriteLine(data) End Using ただし,Catch節に相当するコードは書けないので,今回の場合は,Finally節を Finally If tw IsNot Nothing Then tw.Close() End Try とするのがよいでしょう。 # Try-CatchのTry節にUsingを入れてもよいですが。
- 11zep
- ベストアンサー率36% (48/133)
tw = My.Computer.FileSystem.OpenTextFileWriter(wfileNamePath, True, System.Text.Encoding.Default) をTryの前(上)に移動すればいいのでは?
お礼
なるほど、警告のでる原因はそれだったのですね。先程試したら、警告とれました。ありがとうございました。