Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/
Class

TarArchiveWriter

OfficeIMO.Archives

Namespace
OfficeIMO.Archives
Assembly
OfficeIMO.Archives
Source revision
ac7e6e1bad8a with working tree changes
Implements
IDisposable
Modifiers
sealed

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 required
options OfficeIMO.Archives.TarArchiveWriterOptions? = null optional
leaveOpen bool = false optional

Methods

public void Add(ArchiveWriteEntry entry, CancellationToken cancellationToken = default) #

Adds one described entry.

Parameters

entry OfficeIMO.Archives.ArchiveWriteEntry required
cancellationToken System.Threading.CancellationToken = default optional
public void AddDirectory(string path, DateTimeOffset? lastWriteTime = null) #

Adds an explicit directory member.

Parameters

path string required
lastWriteTime System.DateTimeOffset? = null optional
AddFile 2 overloads
public void AddFile(string path, byte[] content, DateTimeOffset? lastWriteTime = null) #

Adds one file member from memory.

Parameters

path string required
content byte[] required
lastWriteTime System.DateTimeOffset? = null optional
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 required
content System.IO.Stream required
lastWriteTime System.DateTimeOffset? = null optional
cancellationToken System.Threading.CancellationToken = default optional
Create 2 overloads
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 required
entries System.Collections.Generic.IEnumerable<OfficeIMO.Archives.ArchiveWriteEntry> required
options OfficeIMO.Archives.TarArchiveWriterOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional
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 required
entries System.Collections.Generic.IEnumerable<OfficeIMO.Archives.ArchiveWriteEntry> required
options OfficeIMO.Archives.TarArchiveWriterOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional
CreateFromDirectory 2 overloads
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 required
destination System.IO.Stream required
options OfficeIMO.Archives.TarArchiveWriterOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional
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 required
destinationPath string required
options OfficeIMO.Archives.TarArchiveWriterOptions? = null optional
cancellationToken System.Threading.CancellationToken = default optional
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.