67 references to Pax
System.Formats.Tar (67)
System\Formats\Tar\GnuTarEntry.cs (1)
46/// <para>When creating an instance of <see cref="GnuTarEntry"/> using this constructor, if <paramref name="other"/> is <see cref="TarEntryFormat.Gnu"/> or <see cref="TarEntryFormat.Pax"/>, then the <see cref="AccessTime"/> and <see cref="ChangeTime"/> properties are set to the same values set in <paramref name="other"/>. But if <paramref name="other"/> is of any other format, then <see cref="AccessTime"/> and <see cref="ChangeTime"/> are set to <see langword="default" />, which in the entry header <c>atime</c> and <c>ctime</c> fields is written as null bytes. This ensures compatibility with other tools that are unable to read the <c>atime</c> and <c>ctime</c> in <see cref="TarEntryFormat.Gnu"/> entries, as these two fields are not POSIX compatible because other formats expect the <c>prefix</c> field in the same header location where <see cref="TarEntryFormat.Gnu"/> writes <c>atime</c> and <c>ctime</c>.</para>
System\Formats\Tar\PaxGlobalExtendedAttributesTarEntry.cs (2)
18: base(header, readerOfOrigin, TarEntryFormat.Pax) 28: base(TarEntryType.GlobalExtendedAttributes, nameof(PaxGlobalExtendedAttributesTarEntry), TarEntryFormat.Pax, isGea: true) // Name == name of type for lack of a better temporary name until the entry is written
System\Formats\Tar\PaxTarEntry.cs (5)
19: base(header, readerOfOrigin, TarEntryFormat.Pax) 53: base(entryType, entryName, TarEntryFormat.Pax, isGea: false) 92: base(entryType, entryName, TarEntryFormat.Pax, isGea: false) 113: base(other, TarEntryFormat.Pax) 115if (other._header._format is TarEntryFormat.Ustar or TarEntryFormat.Pax)
System\Formats\Tar\PosixTarEntry.cs (1)
9/// Abstract class that represents a tar entry from an archive of a format that is based on the POSIX IEEE P1003.1 standard from 1988. This includes the formats <see cref="TarEntryFormat.Ustar"/> (represented by the <see cref="UstarTarEntry"/> class), <see cref="TarEntryFormat.Pax"/> (represented by the <see cref="PaxTarEntry"/> class) and <see cref="TarEntryFormat.Gnu"/> (represented by the <see cref="GnuTarEntry"/> class).
System\Formats\Tar\TarEntry.cs (1)
15/// <remarks>All the properties exposed by this class are supported by the <see cref="TarEntryFormat.V7"/>, <see cref="TarEntryFormat.Ustar"/>, <see cref="TarEntryFormat.Pax"/> and <see cref="TarEntryFormat.Gnu"/> formats.</remarks>
System\Formats\Tar\TarEntryType.cs (1)
14/// <para>This entry type is specific to the <see cref="TarEntryFormat.Ustar"/>, <see cref="TarEntryFormat.Pax"/> and <see cref="TarEntryFormat.Gnu"/> formats.</para>
System\Formats\Tar\TarFile.cs (2)
330using (TarWriter writer = new TarWriter(destination, TarEntryFormat.Pax, leaveOpen)) 384TarWriter writer = new TarWriter(destination, TarEntryFormat.Pax, leaveOpen);
System\Formats\Tar\TarHeader.cs (2)
143TarEntryFormat.Ustar or TarEntryFormat.Pax => UstarMagic, 150TarEntryFormat.Ustar or TarEntryFormat.Pax => UstarVersion,
System\Formats\Tar\TarHeader.Read.cs (3)
80Debug.Assert(header._format is TarEntryFormat.Ustar or TarEntryFormat.Pax or TarEntryFormat.Gnu); 406TarEntryType.GlobalExtendedAttributes => TarEntryFormat.Pax, 475case TarEntryFormat.Ustar or TarEntryFormat.Pax:
System\Formats\Tar\TarHeader.Write.cs (17)
81TarEntryFormat.Ustar or TarEntryFormat.Pax => FieldLocations.PosixData, 133TarEntryFormat.Ustar or TarEntryFormat.Pax => FieldLocations.PosixData, 282TarHeader extendedAttributesHeader = new(TarEntryFormat.Pax); 289WriteWithUnseekableDataStream(TarEntryFormat.Pax, tempStream, buffer, shouldAdvanceToEnd: false); 313WriteWithSeekableDataStream(TarEntryFormat.Pax, archiveStream, buffer); 326TarHeader extendedAttributesHeader = new(TarEntryFormat.Pax); 333await WriteWithUnseekableDataStreamAsync(TarEntryFormat.Pax, tempStream, buffer, shouldAdvanceToEnd: false, cancellationToken).ConfigureAwait(false); 357await WriteWithSeekableDataStreamAsync(TarEntryFormat.Pax, archiveStream, buffer, cancellationToken).ConfigureAwait(false); 499WriteWithSeekableDataStream(TarEntryFormat.Pax, archiveStream, buffer); 508return WriteWithSeekableDataStreamAsync(TarEntryFormat.Pax, archiveStream, buffer, cancellationToken); 529tmpChecksum += WriteCommonFields(buffer, TarHelpers.GetCorrectTypeFlagForFormat(TarEntryFormat.Pax, _typeFlag)); 547case TarEntryFormat.Pax: 685if (_format is not TarEntryFormat.Pax and not TarEntryFormat.Gnu) 743if (_format is not TarEntryFormat.Pax) 761if (_format is not TarEntryFormat.Pax) 1116if (isOctalRange || _format == TarEntryFormat.Pax) 1142if (isOctalRange || _format == TarEntryFormat.Pax)
System\Formats\Tar\TarHelpers.cs (1)
361case TarEntryFormat.Pax:
System\Formats\Tar\TarReader.cs (8)
111/// <para>More than one Global Extended Attributes Entry was found in the current <see cref="TarEntryFormat.Pax"/> archive.</para> 113/// <para>Two or more Extended Attributes entries were found consecutively in the current <see cref="TarEntryFormat.Pax"/> archive.</para></exception> 138TarEntryFormat.Pax => header._typeFlag is TarEntryType.GlobalExtendedAttributes ? 171/// <para>More than one Global Extended Attributes Entry was found in the current <see cref="TarEntryFormat.Pax"/> archive.</para> 173/// <para>Two or more Extended Attributes entries were found consecutively in the current <see cref="TarEntryFormat.Pax"/> archive.</para></exception> 291TarEntryFormat.Pax => header._typeFlag is TarEntryType.GlobalExtendedAttributes ? 401actualHeader = TarHeader.TryGetNextHeader(_archiveStream, copyData, TarEntryFormat.Pax, processDataBlock: false); 434TarHeader? actualHeader = await TarHeader.TryGetNextHeaderAsync(_archiveStream, copyData, TarEntryFormat.Pax, processDataBlock: false, cancellationToken).ConfigureAwait(false);
System\Formats\Tar\TarWriter.cs (21)
27/// <remarks>When using this constructor, <see cref="TarEntryFormat.Pax"/> is used as the default format of the entries written to the archive using the <see cref="WriteEntry(string, string?)"/> method.</remarks> 30/// <remarks>The <see cref="TarEntryFormat.Pax"/> format is the default format as it is the most flexible and POSIX compatible. This is the only format with which <see cref="TarWriter"/> reads and stores <c>atime</c> and <c>ctime</c> when creating entries from filesystem entries.</remarks> 32: this(archiveStream, TarEntryFormat.Pax, leaveOpen: false) 37/// Initializes a <see cref="TarWriter"/> instance that can write tar entries to the specified stream and optionally leaves the stream open upon disposal of this instance. When using this constructor, the format of the resulting archive is <see cref="TarEntryFormat.Pax"/>. 43/// <remarks>The <see cref="TarEntryFormat.Pax"/> format is the default format as it is the most flexible and POSIX compatible. This is the only format with which <see cref="TarWriter"/> reads and stores <c>atime</c> and <c>ctime</c> when creating entries from filesystem entries.</remarks> 45: this(archiveStream, TarEntryFormat.Pax, leaveOpen) 54/// <param name="format">The format to use when calling <see cref="WriteEntry(string, string?)"/>. The default value is <see cref="TarEntryFormat.Pax"/>.</param> 57/// <remarks>The recommended format is <see cref="TarEntryFormat.Pax"/> for its flexibility.</remarks> 61/// <remarks>The <see cref="TarEntryFormat.Pax"/> format is the default for the other <see cref="TarWriter"/> constructors. This is the recommended format as it is the most flexible and POSIX compatible. This is the only format with which <see cref="TarWriter"/> reads and stores <c>atime</c> and <c>ctime</c> when creating entries from filesystem entries.</remarks> 62public TarWriter(Stream archiveStream, TarEntryFormat format = TarEntryFormat.Pax, bool leaveOpen = false) 71if (format is not TarEntryFormat.V7 and not TarEntryFormat.Ustar and not TarEntryFormat.Pax and not TarEntryFormat.Gnu) 140/// <para>The entry will be created using the format specified in the <see cref="TarWriter(Stream, TarEntryFormat, bool)"/> constructor, or will use <see cref="TarEntryFormat.Pax"/> if other constructors are used.</para> 141/// <para>If the format is <see cref="TarEntryFormat.Pax"/>, the <c>atime</c> and <c>ctime</c> from the file will be stored in the <see cref="PaxTarEntry.ExtendedAttributes"/> dictionary. If the format is <see cref="TarEntryFormat.Gnu"/>, this method will not set a value for <see cref="GnuTarEntry.AccessTime"/> and <see cref="GnuTarEntry.ChangeTime"/> because most TAR tools do not support these fields for this format.</para> 160/// <para>The entry will be created using the format specified in the <see cref="TarWriter(Stream, TarEntryFormat, bool)"/> constructor, or will use <see cref="TarEntryFormat.Pax"/> if other constructors are used.</para> 161/// <para>If the format is <see cref="TarEntryFormat.Pax"/>, the <c>atime</c> and <c>ctime</c> from the file will be stored in the <see cref="PaxTarEntry.ExtendedAttributes"/> dictionary. If the format is <see cref="TarEntryFormat.Gnu"/>, this method will not set a value for <see cref="GnuTarEntry.AccessTime"/> and <see cref="GnuTarEntry.ChangeTime"/> because most TAR tools do not support these fields for this format.</para> 214/// <para><see cref="TarEntryFormat.Ustar"/>, <see cref="TarEntryFormat.Pax"/> and <see cref="TarEntryFormat.Gnu"/></para> 233/// <para>To ensure an entry preserves the <c>atime</c> and <c>ctime</c> values and it is readable by other tools, it is recommended to convert the entry to <see cref="PaxTarEntry"/> instead. In that format, the two values get stored in the <see cref="PaxTarEntry.ExtendedAttributes"/>. The <see cref="TarEntryFormat.Pax"/> format is used as the default format by <see cref="TarWriter"/> as it is the most flexible and POSIX compatible.</para> 262/// <para><see cref="TarEntryFormat.Ustar"/>, <see cref="TarEntryFormat.Pax"/> and <see cref="TarEntryFormat.Gnu"/></para> 309case TarEntryFormat.Pax: 345TarEntryFormat.Pax when entry._header._typeFlag is TarEntryType.GlobalExtendedAttributes => entry._header.WriteAsPaxGlobalExtendedAttributesAsync(_archiveStream, buffer, _nextGlobalExtendedAttributesEntryNumber++, cancellationToken), 346TarEntryFormat.Pax => entry._header.WriteAsPaxAsync(_archiveStream, buffer, cancellationToken),
System\Formats\Tar\TarWriter.Unix.cs (1)
47TarEntryFormat.Pax => new PaxTarEntry(entryType, entryName),
System\Formats\Tar\UstarTarEntry.cs (1)
47if (other._header._format is TarEntryFormat.Ustar or TarEntryFormat.Pax)