342 references to TarEntryType
Microsoft.DotNet.SignTool (2)
src\ZipData.cs (2)
645if (tar.EntryType == TarEntryType.Directory || 646(skipSymlinks && tar.EntryType == TarEntryType.SymbolicLink))
System.Formats.Tar (340)
System\Formats\Tar\GnuTarEntry.cs (10)
27/// <para>When creating an instance using the <see cref="GnuTarEntry(TarEntryType, string)"/> constructor, only the following entry types are supported:</para> 29/// <item>In all platforms: <see cref="TarEntryType.Directory"/>, <see cref="TarEntryType.HardLink"/>, <see cref="TarEntryType.SymbolicLink"/>, <see cref="TarEntryType.RegularFile"/>.</item> 30/// <item>In Unix platforms only: <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> and <see cref="TarEntryType.Fifo"/>.</item> 37public GnuTarEntry(TarEntryType entryType, string entryName) 100internal override bool IsDataStreamSetterSupported() => EntryType is TarEntryType.RegularFile;
System\Formats\Tar\PaxGlobalExtendedAttributesTarEntry.cs (1)
26: 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 (21)
26/// <remarks><para>When creating an instance using the <see cref="PaxTarEntry(TarEntryType, string)"/> constructor, only the following entry types are supported:</para> 28/// <item>In all platforms: <see cref="TarEntryType.Directory"/>, <see cref="TarEntryType.HardLink"/>, <see cref="TarEntryType.SymbolicLink"/>, <see cref="TarEntryType.RegularFile"/>.</item> 29/// <item>In Unix platforms only: <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> and <see cref="TarEntryType.Fifo"/>.</item> 31/// <para>Use the <see cref="PaxTarEntry(TarEntryType, string, IEnumerable{KeyValuePair{string, string}})"/> constructor to include extended attributes when creating the entry.</para> 37public PaxTarEntry(TarEntryType entryType, string entryName) 49/// <remarks>When creating an instance using the <see cref="PaxTarEntry(TarEntryType, string)"/> constructor, only the following entry types are supported: 51/// <item>In all platforms: <see cref="TarEntryType.Directory"/>, <see cref="TarEntryType.HardLink"/>, <see cref="TarEntryType.SymbolicLink"/>, <see cref="TarEntryType.RegularFile"/>.</item> 52/// <item>In Unix platforms only: <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> and <see cref="TarEntryType.Fifo"/>.</item> 65public PaxTarEntry(TarEntryType entryType, string entryName, IEnumerable<KeyValuePair<string, string>> extendedAttributes) 111/// <remarks>The extended attributes are specified when constructing an entry and updated with additional attributes when the entry is written. Use <see cref="PaxTarEntry(TarEntryType, string, IEnumerable{KeyValuePair{string, string}})"/> to append custom extended attributes. 126internal override bool IsDataStreamSetterSupported() => EntryType == TarEntryType.RegularFile;
System\Formats\Tar\PosixTarEntry.cs (5)
22internal PosixTarEntry(TarEntryType entryType, string entryName, TarEntryFormat format, bool isGea) 59if (_header._typeFlag is not TarEntryType.BlockDevice and not TarEntryType.CharacterDevice) 85if (_header._typeFlag is not TarEntryType.BlockDevice and not TarEntryType.CharacterDevice)
System\Formats\Tar\TarEntry.cs (62)
37internal TarEntry(TarEntryType entryType, string entryName, TarEntryFormat format, bool isGea) 41Debug.Assert(!isGea || entryType is TarEntryType.GlobalExtendedAttributes); 60TarEntryType compatibleEntryType = TarHelpers.GetCorrectTypeFlagForFormat(format, other.EntryType); 77public TarEntryType EntryType => _header._typeFlag; 115/// <remarks>The entry type that commonly contains data is <see cref="TarEntryType.RegularFile"/> (or <see cref="TarEntryType.V7RegularFile"/> in the <see cref="TarEntryFormat.V7"/> format). Other uncommon entry types that can also contain data are: <see cref="TarEntryType.ContiguousFile"/>, <see cref="TarEntryType.DirectoryList"/>, <see cref="TarEntryType.MultiVolume"/> and <see cref="TarEntryType.SparseFile"/>.</remarks> 119/// When the <see cref="EntryType"/> indicates a <see cref="TarEntryType.SymbolicLink"/> or a <see cref="TarEntryType.HardLink"/>, this property returns the link target path of such link. 121/// <exception cref="InvalidOperationException">The entry type is not <see cref="TarEntryType.HardLink"/> or <see cref="TarEntryType.SymbolicLink"/>.</exception> 129if (_header._typeFlag is not TarEntryType.HardLink and not TarEntryType.SymbolicLink) 185/// <remarks><para>Files of type <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> or <see cref="TarEntryType.Fifo"/> can only be extracted in Unix platforms.</para> 186/// <para>Elevation is required to extract a <see cref="TarEntryType.BlockDevice"/> or <see cref="TarEntryType.CharacterDevice"/> to disk.</para> 203if (EntryType is TarEntryType.SymbolicLink or TarEntryType.HardLink or TarEntryType.GlobalExtendedAttributes) 217/// <remarks><para>Files of type <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> or <see cref="TarEntryType.Fifo"/> can only be extracted in Unix platforms.</para> 218/// <para>Elevation is required to extract a <see cref="TarEntryType.BlockDevice"/> or <see cref="TarEntryType.CharacterDevice"/> to disk.</para></remarks> 237if (EntryType is TarEntryType.SymbolicLink or TarEntryType.HardLink or TarEntryType.GlobalExtendedAttributes) 250/// <exception cref="InvalidOperationException">Setting a data section is not supported because the <see cref="EntryType"/> is not <see cref="TarEntryType.RegularFile"/> (or <see cref="TarEntryType.V7RegularFile"/> for an archive of <see cref="TarEntryFormat.V7"/> format).</exception> 307if (EntryType == TarEntryType.Directory) 330if (EntryType == TarEntryType.Directory) 360if (EntryType is TarEntryType.SymbolicLink) 375else if (EntryType is TarEntryType.HardLink) 410if (EntryType is TarEntryType.RegularFile or TarEntryType.V7RegularFile or TarEntryType.ContiguousFile) 429if (EntryType is TarEntryType.RegularFile or TarEntryType.V7RegularFile or TarEntryType.ContiguousFile) 442Debug.Assert(EntryType is not (TarEntryType.RegularFile or TarEntryType.V7RegularFile or TarEntryType.ContiguousFile)); 446case TarEntryType.Directory: 447case TarEntryType.DirectoryList: 463case TarEntryType.SymbolicLink: 469case TarEntryType.HardLink: 474case TarEntryType.BlockDevice: 478case TarEntryType.CharacterDevice: 482case TarEntryType.Fifo: 486case TarEntryType.ExtendedAttributes: 487case TarEntryType.GlobalExtendedAttributes: 488case TarEntryType.LongPath: 489case TarEntryType.LongLink: 493case TarEntryType.MultiVolume: 494case TarEntryType.RenamedOrSymlinked: 495case TarEntryType.SparseFile: 496case TarEntryType.TapeVolume:
System\Formats\Tar\TarEntry.Unix.cs (4)
16Debug.Assert(EntryType is TarEntryType.BlockDevice); 23Debug.Assert(EntryType is TarEntryType.CharacterDevice); 30Debug.Assert(EntryType is TarEntryType.Fifo); 37Debug.Assert(EntryType is TarEntryType.HardLink);
System\Formats\Tar\TarFile.cs (22)
160/// <remarks><para>Files of type <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> or <see cref="TarEntryType.Fifo"/> can only be extracted in Unix platforms.</para> 161/// <para>Elevation is required to extract a <see cref="TarEntryType.BlockDevice"/> or <see cref="TarEntryType.CharacterDevice"/> to disk.</para></remarks> 201/// <remarks><para>Files of type <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> or <see cref="TarEntryType.Fifo"/> can only be extracted in Unix platforms.</para> 202/// <para>Elevation is required to extract a <see cref="TarEntryType.BlockDevice"/> or <see cref="TarEntryType.CharacterDevice"/> to disk.</para></remarks> 244/// <remarks><para>Files of type <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> or <see cref="TarEntryType.Fifo"/> can only be extracted in Unix platforms.</para> 245/// <para>Elevation is required to extract a <see cref="TarEntryType.BlockDevice"/> or <see cref="TarEntryType.CharacterDevice"/> to disk.</para></remarks> 287/// <remarks><para>Files of type <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> or <see cref="TarEntryType.Fifo"/> can only be extracted in Unix platforms.</para> 288/// <para>Elevation is required to extract a <see cref="TarEntryType.BlockDevice"/> or <see cref="TarEntryType.CharacterDevice"/> to disk.</para></remarks> 465if (entry.EntryType is not TarEntryType.GlobalExtendedAttributes) 510if (entry.EntryType is not TarEntryType.GlobalExtendedAttributes)
System\Formats\Tar\TarHeader.cs (4)
59internal TarEntryType _typeFlag; 86internal TarHeader(TarEntryFormat format, string name = "", int mode = 0, DateTimeOffset mTime = default, TarEntryType typeFlag = TarEntryType.RegularFile) 100internal TarHeader(TarEntryFormat format, TarEntryType typeFlag, TarHeader other)
System\Formats\Tar\TarHeader.Read.cs (52)
190case TarEntryType.ExtendedAttributes or TarEntryType.GlobalExtendedAttributes: 193case TarEntryType.LongLink or TarEntryType.LongPath: 196case TarEntryType.BlockDevice: 197case TarEntryType.CharacterDevice: 198case TarEntryType.Directory: 199case TarEntryType.Fifo: 200case TarEntryType.HardLink: 201case TarEntryType.SymbolicLink: 208case TarEntryType.RegularFile: 209case TarEntryType.V7RegularFile: // Treated as regular file 210case TarEntryType.ContiguousFile: // Treated as regular file 211case TarEntryType.DirectoryList: // Contains the list of filesystem entries in the data section 212case TarEntryType.MultiVolume: // Contains portion of a file 213case TarEntryType.RenamedOrSymlinked: // Might contain data 214case TarEntryType.SparseFile: // Contains portion of a file 215case TarEntryType.TapeVolume: // Might contain data 252case TarEntryType.ExtendedAttributes or TarEntryType.GlobalExtendedAttributes: 255case TarEntryType.LongLink or TarEntryType.LongPath: 258case TarEntryType.BlockDevice: 259case TarEntryType.CharacterDevice: 260case TarEntryType.Directory: 261case TarEntryType.Fifo: 262case TarEntryType.HardLink: 263case TarEntryType.SymbolicLink: 270case TarEntryType.RegularFile: 271case TarEntryType.V7RegularFile: // Treated as regular file 272case TarEntryType.ContiguousFile: // Treated as regular file 273case TarEntryType.DirectoryList: // Contains the list of filesystem entries in the data section 274case TarEntryType.MultiVolume: // Contains portion of a file 275case TarEntryType.RenamedOrSymlinked: // Might contain data 276case TarEntryType.SparseFile: // Contains portion of a file 277case TarEntryType.TapeVolume: // Might contain data 391typeFlag: (TarEntryType)buffer[FieldLocations.TypeFlag]) 404TarEntryType.ExtendedAttributes or 405TarEntryType.GlobalExtendedAttributes => TarEntryFormat.Pax, 407TarEntryType.DirectoryList or 408TarEntryType.LongLink or 409TarEntryType.LongPath or 410TarEntryType.MultiVolume or 411TarEntryType.RenamedOrSymlinked or 412TarEntryType.TapeVolume => TarEntryFormat.Gnu, 415TarEntryType.V7RegularFile => TarEntryFormat.V7, 417TarEntryType.SparseFile => throw new NotSupportedException(SR.Format(SR.TarEntryTypeNotSupported, header._typeFlag)), 421_ => (header._typeFlag == TarEntryType.RegularFile) ? TarEntryFormat.Ustar : TarEntryFormat.V7 526if (_typeFlag is TarEntryType.CharacterDevice or TarEntryType.BlockDevice) 700if (_typeFlag == TarEntryType.LongLink) 704else if (_typeFlag == TarEntryType.LongPath)
System\Formats\Tar\TarHeader.Write.cs (21)
174TarEntryType actualEntryType = TarHelpers.GetCorrectTypeFlagForFormat(TarEntryFormat.V7, _typeFlag); 184TarEntryType actualEntryType = TarHelpers.GetCorrectTypeFlagForFormat(TarEntryFormat.Ustar, _typeFlag); 216Debug.Assert(_typeFlag is TarEntryType.GlobalExtendedAttributes); 279Debug.Assert(_typeFlag is not TarEntryType.GlobalExtendedAttributes); 322Debug.Assert(_typeFlag is not TarEntryType.GlobalExtendedAttributes); 452return GetGnuLongMetadataHeader(dataStream, TarEntryType.LongLink); 458return GetGnuLongMetadataHeader(dataStream, TarEntryType.LongPath); 462private static TarHeader GetGnuLongMetadataHeader(MemoryStream dataStream, TarEntryType entryType) 464Debug.Assert(entryType is TarEntryType.LongPath or TarEntryType.LongLink); 522_typeFlag = isGea ? TarEntryType.GlobalExtendedAttributes : TarEntryType.ExtendedAttributes; 646private int WriteCommonFields(Span<byte> buffer, TarEntryType actualEntryType) 649Debug.Assert(!string.IsNullOrEmpty(_linkName) ^ (_typeFlag is not TarEntryType.SymbolicLink and not TarEntryType.HardLink)); 791if (_typeFlag is not TarEntryType.LongLink and not TarEntryType.LongPath) 954Debug.Assert(_typeFlag is TarEntryType.SymbolicLink or TarEntryType.HardLink); 1201return _typeFlag is TarEntryType.Directory or TarEntryType.DirectoryList ?
System\Formats\Tar\TarHelpers.cs (35)
48internal static int GetDefaultMode(TarEntryType type) 49=> type is TarEntryType.Directory or TarEntryType.DirectoryList ? (int)DefaultDirectoryMode : (int)DefaultFileMode; 200internal static TarEntryType GetCorrectTypeFlagForFormat(TarEntryFormat format, TarEntryType entryType) 204if (entryType is TarEntryType.RegularFile) 206return TarEntryType.V7RegularFile; 209else if (entryType is TarEntryType.V7RegularFile) 211return TarEntryType.RegularFile; 313internal static void ThrowIfEntryTypeNotSupported(TarEntryType entryType, TarEntryFormat archiveFormat, [CallerArgumentExpression(nameof(entryType))] string? paramName = null) 319TarEntryType.Directory or 320TarEntryType.HardLink or 321TarEntryType.V7RegularFile or 322TarEntryType.SymbolicLink) 330TarEntryType.BlockDevice or 331TarEntryType.CharacterDevice or 332TarEntryType.Directory or 333TarEntryType.Fifo or 334TarEntryType.HardLink or 335TarEntryType.RegularFile or 336TarEntryType.SymbolicLink) 344TarEntryType.BlockDevice or 345TarEntryType.CharacterDevice or 346TarEntryType.Directory or 347TarEntryType.Fifo or 348TarEntryType.HardLink or 349TarEntryType.RegularFile or 350TarEntryType.SymbolicLink) 362TarEntryType.BlockDevice or 363TarEntryType.CharacterDevice or 364TarEntryType.Directory or 365TarEntryType.Fifo or 366TarEntryType.HardLink or 367TarEntryType.RegularFile or 368TarEntryType.SymbolicLink)
System\Formats\Tar\TarReader.cs (41)
138TarEntryFormat.Pax => header._typeFlag is TarEntryType.GlobalExtendedAttributes ? 273TarEntryFormat.Pax => header._typeFlag is TarEntryType.GlobalExtendedAttributes ? 313if (header._typeFlag is TarEntryType.ExtendedAttributes) 322else if (header._typeFlag is TarEntryType.LongLink or TarEntryType.LongPath) 354if (header._typeFlag is TarEntryType.ExtendedAttributes) 364else if (header._typeFlag is TarEntryType.LongLink or TarEntryType.LongPath) 391if (actualHeader._typeFlag is TarEntryType.GlobalExtendedAttributes or 392TarEntryType.ExtendedAttributes or 393TarEntryType.LongLink or 394TarEntryType.LongPath) 396throw new InvalidDataException(SR.Format(SR.TarUnexpectedMetadataEntry, actualHeader._typeFlag, TarEntryType.ExtendedAttributes)); 423if (actualHeader._typeFlag is TarEntryType.GlobalExtendedAttributes or 424TarEntryType.ExtendedAttributes or 425TarEntryType.LongLink or 426TarEntryType.LongPath) 428throw new InvalidDataException(SR.Format(SR.TarUnexpectedMetadataEntry, actualHeader._typeFlag, TarEntryType.ExtendedAttributes)); 432if (actualHeader._typeFlag is TarEntryType.ExtendedAttributes) 434throw new InvalidDataException(SR.Format(SR.TarUnexpectedMetadataEntry, TarEntryType.ExtendedAttributes, TarEntryType.ExtendedAttributes)); 467if ((header._typeFlag is TarEntryType.LongLink && secondHeader._typeFlag is TarEntryType.LongPath) || 468(header._typeFlag is TarEntryType.LongPath && secondHeader._typeFlag is TarEntryType.LongLink)) 479if (thirdHeader._typeFlag is TarEntryType.LongLink or TarEntryType.LongPath) 484if (header._typeFlag is TarEntryType.LongLink) 492else if (header._typeFlag is TarEntryType.LongPath) 505if (header._typeFlag is TarEntryType.LongLink) 510else if (header._typeFlag is TarEntryType.LongPath) 544if ((header._typeFlag is TarEntryType.LongLink && secondHeader._typeFlag is TarEntryType.LongPath) || 545(header._typeFlag is TarEntryType.LongPath && secondHeader._typeFlag is TarEntryType.LongLink)) 555if (thirdHeader._typeFlag is TarEntryType.LongLink or TarEntryType.LongPath) 560if (header._typeFlag is TarEntryType.LongLink) 568else if (header._typeFlag is TarEntryType.LongPath) 581if (header._typeFlag is TarEntryType.LongLink) 586else if (header._typeFlag is TarEntryType.LongPath)
System\Formats\Tar\TarWriter.cs (31)
207/// <item><see cref="TarEntryType.Directory"/></item> 208/// <item><see cref="TarEntryType.HardLink"/></item> 209/// <item><see cref="TarEntryType.SymbolicLink"/></item> 210/// <item><see cref="TarEntryType.V7RegularFile"/></item> 216/// <item><see cref="TarEntryType.BlockDevice"/></item> 217/// <item><see cref="TarEntryType.CharacterDevice"/></item> 218/// <item><see cref="TarEntryType.Directory"/></item> 219/// <item><see cref="TarEntryType.Fifo"/></item> 220/// <item><see cref="TarEntryType.HardLink"/></item> 221/// <item><see cref="TarEntryType.RegularFile"/></item> 222/// <item><see cref="TarEntryType.SymbolicLink"/></item> 227/// <exception cref="ArgumentException">The entry type is <see cref="TarEntryType.HardLink"/> or <see cref="TarEntryType.SymbolicLink"/> and the <see cref="TarEntry.LinkName"/> is <see langword="null"/> or empty.</exception> 255/// <item><see cref="TarEntryType.Directory"/></item> 256/// <item><see cref="TarEntryType.HardLink"/></item> 257/// <item><see cref="TarEntryType.SymbolicLink"/></item> 258/// <item><see cref="TarEntryType.V7RegularFile"/></item> 264/// <item><see cref="TarEntryType.BlockDevice"/></item> 265/// <item><see cref="TarEntryType.CharacterDevice"/></item> 266/// <item><see cref="TarEntryType.Directory"/></item> 267/// <item><see cref="TarEntryType.Fifo"/></item> 268/// <item><see cref="TarEntryType.HardLink"/></item> 269/// <item><see cref="TarEntryType.RegularFile"/></item> 270/// <item><see cref="TarEntryType.SymbolicLink"/></item> 275/// <exception cref="ArgumentException">The entry type is <see cref="TarEntryType.HardLink"/> or <see cref="TarEntryType.SymbolicLink"/> and the <see cref="TarEntry.LinkName"/> is <see langword="null"/> or empty.</exception> 310if (entry._header._typeFlag is TarEntryType.GlobalExtendedAttributes) 345TarEntryFormat.Pax when entry._header._typeFlag is TarEntryType.GlobalExtendedAttributes => entry._header.WriteAsPaxGlobalExtendedAttributesAsync(_archiveStream, buffer, _nextGlobalExtendedAttributesEntryNumber++, cancellationToken), 402private static void ValidateEntryLinkName(TarEntryType entryType, string? linkName) 404if (entryType is TarEntryType.HardLink or TarEntryType.SymbolicLink)
System\Formats\Tar\TarWriter.Unix.cs (14)
28TarEntryType entryType = (status.Mode & (uint)Interop.Sys.FileTypes.S_IFMT) switch 32Interop.Sys.FileTypes.S_IFBLK => TarEntryType.BlockDevice, 33Interop.Sys.FileTypes.S_IFCHR => TarEntryType.CharacterDevice, 34Interop.Sys.FileTypes.S_IFIFO => TarEntryType.Fifo, 35Interop.Sys.FileTypes.S_IFLNK => TarEntryType.SymbolicLink, 36Interop.Sys.FileTypes.S_IFREG => Format is TarEntryFormat.V7 ? TarEntryType.V7RegularFile : TarEntryType.RegularFile, 37Interop.Sys.FileTypes.S_IFDIR => TarEntryType.Directory, 41FileSystemInfo info = entryType is TarEntryType.Directory ? new DirectoryInfo(fullPath) : new FileInfo(fullPath); 52if (entryType is TarEntryType.BlockDevice or TarEntryType.CharacterDevice) 95if (entry.EntryType == TarEntryType.SymbolicLink) 100if (entry.EntryType is TarEntryType.RegularFile or TarEntryType.V7RegularFile)
System\Formats\Tar\UstarTarEntry.cs (10)
22/// <remarks>When creating an instance using the <see cref="UstarTarEntry(TarEntryType, string)"/> constructor, only the following entry types are supported: 24/// <item>In all platforms: <see cref="TarEntryType.Directory"/>, <see cref="TarEntryType.HardLink"/>, <see cref="TarEntryType.SymbolicLink"/>, <see cref="TarEntryType.RegularFile"/>.</item> 25/// <item>In Unix platforms only: <see cref="TarEntryType.BlockDevice"/>, <see cref="TarEntryType.CharacterDevice"/> and <see cref="TarEntryType.Fifo"/>.</item> 32public UstarTarEntry(TarEntryType entryType, string entryName) 58internal override bool IsDataStreamSetterSupported() => EntryType == TarEntryType.RegularFile;
System\Formats\Tar\V7TarEntry.cs (7)
22/// <remarks>When creating an instance using the <see cref="V7TarEntry(TarEntryType, string)"/> constructor, only the following entry types are supported: <see cref="TarEntryType.Directory"/>, <see cref="TarEntryType.HardLink"/>, <see cref="TarEntryType.SymbolicLink"/> and <see cref="TarEntryType.V7RegularFile"/>.</remarks> 27public V7TarEntry(TarEntryType entryType, string entryName) 44internal override bool IsDataStreamSetterSupported() => EntryType == TarEntryType.V7RegularFile;