Example #1
0
 /// <summary>
 /// Get the binary data representing this instance.
 /// </summary>
 /// <returns>The raw binary data representing this instance.</returns>
 public byte[] GetData()
 {
     using (MemoryStream ms = new MemoryStream())
         using (ZipHelperStream helperStream = new ZipHelperStream(ms)) {
             helperStream.IsStreamOwner = false;
             helperStream.WriteByte((byte)_flags);                 // Flags
             if ((_flags & Flags.ModificationTime) != 0)
             {
                 TimeSpan span    = _modificationTime - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
                 var      seconds = (int)span.TotalSeconds;
                 helperStream.WriteLEInt(seconds);
             }
             if ((_flags & Flags.AccessTime) != 0)
             {
                 TimeSpan span    = _lastAccessTime - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
                 var      seconds = (int)span.TotalSeconds;
                 helperStream.WriteLEInt(seconds);
             }
             if ((_flags & Flags.CreateTime) != 0)
             {
                 TimeSpan span    = _createTime - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
                 var      seconds = (int)span.TotalSeconds;
                 helperStream.WriteLEInt(seconds);
             }
             return(ms.ToArray());
         }
 }