TarArchiveWriter
OfficeIMO.Archives
Writes POSIX TAR archives: ustar headers, with pax extended headers for long or non-ASCII names, sizes of 8 GiB or more and times outside the ustar range. With the default options the output depends only on the entries: owner and group are 0 with empty names, modes are 0644 for files and 0755 for directories, and times are fixed.
Inheritance
- object
- TarArchiveWriter
Remarks
The archive ends with two zero blocks and is padded to a 10,240-byte record, as GNU tar and bsdtar do. Member names pass the same path checks as extraction.
Constructors
public TarArchiveWriter(Stream destination, TarArchiveWriterOptions? options = null, bool leaveOpen = false) #Starts an archive at the destination's current position.
Parameters
- destination System.IO.Stream
- options OfficeIMO.Archives.TarArchiveWriterOptions? = null
- leaveOpen bool = false
Methods
public void Add(ArchiveWriteEntry entry, CancellationToken cancellationToken = default) #Adds one described entry.
Parameters
- entry OfficeIMO.Archives.ArchiveWriteEntry
- cancellationToken System.Threading.CancellationToken = default
public void AddDirectory(string path, DateTimeOffset? lastWriteTime = null) #Adds an explicit directory member.
Parameters
- path string
- lastWriteTime System.DateTimeOffset? = null
public void AddFile(string path, byte[] content, DateTimeOffset? lastWriteTime = null) #Adds one file member from memory.
Parameters
- path string
- content byte[]
- lastWriteTime System.DateTimeOffset? = null
public void AddFile(string path, Stream content, DateTimeOffset? lastWriteTime = null, CancellationToken cancellationToken = default) #Adds one file member from the stream's current position to its end. A nonseekable stream is staged first so the header can carry its size. The stream is left open.
Parameters
- path string
- content System.IO.Stream
- lastWriteTime System.DateTimeOffset? = null
- cancellationToken System.Threading.CancellationToken = default
public static void Create(Stream destination, IEnumerable<ArchiveWriteEntry> entries, TarArchiveWriterOptions? options = null, CancellationToken cancellationToken = default) #Writes the entries, in the given order, to a TAR stream.
Parameters
- destination System.IO.Stream
- entries System.Collections.Generic.IEnumerable<OfficeIMO.Archives.ArchiveWriteEntry>
- options OfficeIMO.Archives.TarArchiveWriterOptions? = null
- cancellationToken System.Threading.CancellationToken = default
public static void Create(string destinationPath, IEnumerable<ArchiveWriteEntry> entries, TarArchiveWriterOptions? options = null, CancellationToken cancellationToken = default) #Writes the entries, in the given order, to a new TAR file. An existing file is not overwritten.
Parameters
- destinationPath string
- entries System.Collections.Generic.IEnumerable<OfficeIMO.Archives.ArchiveWriteEntry>
- options OfficeIMO.Archives.TarArchiveWriterOptions? = null
- cancellationToken System.Threading.CancellationToken = default
public static void CreateFromDirectory(string sourceDirectory, Stream destination, TarArchiveWriterOptions? options = null, CancellationToken cancellationToken = default) #Archives a folder's files and subfolders in ordinal path order. Symbolic links and reparse points are rejected.
Parameters
- sourceDirectory string
- destination System.IO.Stream
- options OfficeIMO.Archives.TarArchiveWriterOptions? = null
- cancellationToken System.Threading.CancellationToken = default
public static void CreateFromDirectory(string sourceDirectory, string destinationPath, TarArchiveWriterOptions? options = null, CancellationToken cancellationToken = default) #Archives a folder into a new TAR (or .tar.gz) file. An existing file is not overwritten.
Parameters
- sourceDirectory string
- destinationPath string
- options OfficeIMO.Archives.TarArchiveWriterOptions? = null
- cancellationToken System.Threading.CancellationToken = default
public void Dispose() #Finishes the archive unless a member failed, then releases the destination unless it was left open.
public void Finish() #Writes the end-of-archive blocks, record padding and any gzip trailer. Dispose also finishes.