public TarArchiveEntry CreateEntry(string entryName) { LinkIndicator type = LinkIndicator.File; if (entryName.EndsWith("\\") || entryName.EndsWith("/")) { type = LinkIndicator.Directory; } lock (this) { int index = this.realEntries.Count; long offset = this.baseStream.Length + BLOCK_SIZE; var header = new TarIOFileHeader() { Type = type, Filename = entryName, LastModified = DateTime.Now, Size = 0 }; this.baseStream.Seek(0, SeekOrigin.End); long written = header.Serialise(this.baseStream); long delta = BLOCK_SIZE - written; byte[] buffer = new byte[delta]; this.baseStream.Write(buffer, 0, buffer.Length); } }
public TarArchiveEntry CreateEntry(string name) { LinkIndicator type = LinkIndicator.File; if (name.EndsWith("\\") || name.EndsWith("/")) { type = LinkIndicator.Directory; } var header = new TarIOFileHeader() { Filename = name, LastModified = DateTime.Now, Size = 0, Type = type }; long written = header.Serialise(BaseStream); long delta = TarIOBlockManager.BLOCK_SIZE - written; byte[] buffer = new byte[delta]; BaseStream.Write(buffer, 0, (int)delta); Position += TarIOBlockManager.BLOCK_SIZE; return(new TarArchiveEntry(Archive, header, null)); }