/** * <summary>Append a list of tags to the end of the file.</summary> * <param name="tags">The list of tags.</param> */ public void AppendAll(List <ITag> tags) { using (MemoryStream decompressedData = new MemoryStream()) { using (FileStream fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.Write)) { using (Stream compressStream = GetDecompressStream(fs)) compressStream.CopyTo(decompressedData); } BigBinaryWriter bw = new BigBinaryWriter(decompressedData); bw.Seek(0, SeekOrigin.End); foreach (ITag tag in tags) { tag.WriteData(bw); } using (FileStream fs = new FileStream(file.FullName, FileMode.Create, FileAccess.Write, FileShare.Write)) { using (Stream stream = GetCompressStream(fs)) { decompressedData.Position = 0; decompressedData.CopyTo(stream); } } } }
/** * <summary>Append tags to the end of the file.</summary> * <param name="tag">The tag to be appended.</param> */ public void Append(ITag tag) { BigBinaryWriter bw = new BigBinaryWriter(memStream); bw.Seek(0, SeekOrigin.End); tag.WriteData(bw); bw.Flush(); }
/** * <summary>Append a list of tags to the end of the file.</summary> * <param name="tags">The list of tags.</param> */ public void AppendAll(List <ITag> tags) { BigBinaryWriter bw = new BigBinaryWriter(memStream); bw.Seek(0, SeekOrigin.End); foreach (ITag tag in tags) { tag.WriteData(bw); } bw.Flush(); }