File: System\Formats\Tar\TarEntryType.cs
Web Access
Project: src\src\libraries\System.Formats.Tar\src\System.Formats.Tar.csproj (System.Formats.Tar)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Formats.Tar
{
    /// <summary>
    /// Specifies the tar entry types.
    /// </summary>
    /// <remarks>Tar entries with a metadata entry type are not exposed to the user, they are handled internally.</remarks>
    public enum TarEntryType : byte
    {
        /// <summary>
        /// <para>Regular file.</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.Ustar"/>, <see cref="TarEntryFormat.Pax"/> and <see cref="TarEntryFormat.Gnu"/> formats.</para>
        /// </summary>
        RegularFile = (byte)'0',
        /// <summary>
        /// Hard link.
        /// </summary>
        HardLink = (byte)'1',
        /// <summary>
        /// Symbolic link.
        /// </summary>
        SymbolicLink = (byte)'2',
        /// <summary>
        /// <para>Character device special file.</para>
        /// <para>This entry type is supported only in the Unix platforms for writing.</para>
        /// </summary>
        CharacterDevice = (byte)'3',
        /// <summary>
        /// <para>Character device special file.</para>
        /// <para>This entry type is supported only in the Unix platforms for writing.</para>
        /// </summary>
        BlockDevice = (byte)'4',
        /// <summary>
        /// Directory.
        /// </summary>
        Directory = (byte)'5',
        /// <summary>
        /// <para>FIFO special file.</para>
        /// <para>This entry type is supported only in the Unix platforms for writing.</para>
        /// </summary>
        Fifo = (byte)'6',
        /// <summary>
        /// <para>GNU contiguous file</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.Gnu"/> format, and is treated as a <see cref="RegularFile"/> entry type.</para>
        /// </summary>
        // According to the GNU spec, it's extremely rare to encounter a contiguous entry.
        ContiguousFile = (byte)'7',
        /// <summary>
        /// <para>PAX Extended Attributes entry.</para>
        /// <para>Metadata entry type.</para>
        /// </summary>
        ExtendedAttributes = (byte)'x',
        /// <summary>
        /// <para>PAX Global Extended Attributes entry.</para>
        /// <para>Metadata entry type.</para>
        /// </summary>
        GlobalExtendedAttributes = (byte)'g',
        /// <summary>
        /// <para>GNU directory with a list of entries.</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.Gnu"/> format, and is treated as a <see cref="Directory"/> entry type that contains a data section.</para>
        /// </summary>
        DirectoryList = (byte)'D',
        /// <summary>
        /// <para>GNU long link.</para>
        /// <para>Metadata entry type.</para>
        /// </summary>
        LongLink = (byte)'K',
        /// <summary>
        /// <para>GNU long path.</para>
        /// <para>Metadata entry type.</para>
        /// </summary>
        LongPath = (byte)'L',
        /// <summary>
        /// <para>GNU multi-volume file.</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.Gnu"/> format and is not supported for writing.</para>
        /// </summary>
        MultiVolume = (byte)'M',
        /// <summary>
        /// <para>V7 Regular file.</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.V7"/> format.</para>
        /// </summary>
        V7RegularFile = (byte)'\0',
        /// <summary>
        /// <para>GNU file to be renamed/symlinked.</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.Gnu"/> format. It is considered unsafe and is ignored by other tools.</para>
        /// </summary>
        RenamedOrSymlinked = (byte)'N',
        /// <summary>
        /// <para>GNU sparse file.</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.Gnu"/> format and is not supported for writing.</para>
        /// </summary>
        SparseFile = (byte)'S',
        /// <summary>
        /// <para>GNU tape volume.</para>
        /// <para>This entry type is specific to the <see cref="TarEntryFormat.Gnu"/> format and is not supported for writing.</para>
        /// </summary>
        TapeVolume = (byte)'V',
    }
}