VB 2005 で開発しています。
ファイルの書き込み中にサイズを取得したいのですが如何したら良いでしょうか。
ちょうどvb6.0のLOFの様な感じです。
ご教示お願いいたします。
Sub test1
Dim oFileName = "z:\aaa.txt"
Dim sw As New IO.StreamWriter(oFileName, False, System.Text.Encoding.Default)
sw.WriteLine("123456")
'***** ここでサイズの取得
sw.WriteLine("abcdef")
sw.Close()
End Sub
BaseStream プロパティでその StreamReader の元になっている Stream オブジェクトが取得できるので、それを使って取得できます。
ただし、StreamWriter はバッファリングを行います。内部メモリに書きためておいて、十分な長さになってからファイルに書き出す仕組みです。そのため、単純に BaseStream からサイズ取得するだけじゃ正しい値が取得できないでしょう。内部バッファを強制的にストリームに書き出すには Flush メソッドを使用します。
Hongliangさん、有難うございました。
思い通りのものが出来上がりました。
今後ともよろしくお願いいたします。
ツイート | ![]() |