オープンしているファイルのサイズの取得

解決


Sinya  2006-07-08 03:24:21  No: 132276

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


Hongliang  URL  2006-07-08 05:26:52  No: 132277

BaseStream プロパティでその StreamReader の元になっている Stream オブジェクトが取得できるので、それを使って取得できます。
ただし、StreamWriter はバッファリングを行います。内部メモリに書きためておいて、十分な長さになってからファイルに書き出す仕組みです。そのため、単純に BaseStream からサイズ取得するだけじゃ正しい値が取得できないでしょう。内部バッファを強制的にストリームに書き出すには Flush メソッドを使用します。


Sinya  2006-07-08 18:38:43  No: 132278

Hongliangさん、有難うございました。
思い通りのものが出来上がりました。

今後ともよろしくお願いいたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加