現在、バイナリデータをファイルを以下のような記述で保存しています。
Imports System.IO
Dim sfd As New SaveFileDialog
Dim f As FileStre
Dim w As BinaryWriter
Dim i As Integer
sfd.Filter = "バイナリファイル(*.bin)|*.bin|すべてのファイル(*.*)|*.*"
If sfd.ShowDialog() = DialogResult.OK Then
Console.WriteLine(sfd.FileName)
Try
f = New FileStream(sfd.FileName, FileMode.Create)
Try
w = New BinaryWriter(f)
w.Seek(0, SeekOrigin.Begin)
For i = 0 To 10
w.Write(data(i))
Next
w.Flush()
Finally
w.Close()
f.Close()
End Try
Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try
End If
以上の記述をボタンをクリックしたときに記述しているのですが、このクリックをする度に、同じファイルを選択すると、今まで保存したデータを破棄して、また、最初から上書きしてしまいます。
同じファイルで上書きせずに、追加してデータを保存する方法がありましたら、教えてほしいのですが宜しくお願い致します。
FileMode が作成(上書き)だからでは?
おまけにわざわざ先頭にシークさせてますね。
特攻隊長まるるう様、Hongliang様
本当にありがとうございます。
(改良前)f = New FileStream(sfd.FileName, FileMode.Create)
(改良後)f = New FileStream(sfd.FileName, FileMode.Append)
及び
(改良前)w.Seek(0, SeekOrigin.Begin)
(改良後)w.Seek(0, SeekOrigin.End)
を行い、無事に目的が達成されました。
初心者の私に、わざわざ、コメントを下さり、
心から感謝申し上げます。
ツイート | ![]() |