             else { throw TarError.wrongHeaderChecksum }
 
         // File type
-        // TODO: Don't convert to String.
         let fileTypeIndicator = pointerData.byte()
         self.isGlobalExtendedHeader = fileTypeIndicator == 103 // "g"
         self.isLocalExtendedHeader = fileTypeIndicator == 120 // "x"

        // Owner's user ID
        guard let ownerAccountID = Int(try pointerData.nullSpaceEndedAsciiString(cutoff: 8))
            else { throw TarError.fieldIsNotNumber }
        ownerID = ownerAccountID

        // Group's user ID
        guard let groupAccountID = Int(try pointerData.nullSpaceEndedAsciiString(cutoff: 8))
            else { throw TarError.fieldIsNotNumber }
        groupID = groupAccountID

        // File size
        guard let octalFileSize = Int(try pointerData.nullSpaceEndedAsciiString(cutoff: 12))
            else { throw TarError.fieldIsNotNumber }
        size = octalFileSize.octalToDecimal()

        // Modification time
        guard let octalMtime = Int(try pointerData.nullSpaceEndedAsciiString(cutoff: 12))
            else { throw TarError.fieldIsNotNumber }
        modificationTime = Date(timeIntervalSince1970: TimeInterval(octalMtime.octalToDecimal()))

        // Checksum
        guard let octalChecksum = Int(try pointerData.nullSpaceEndedAsciiString(cutoff: 8))


    public let unixType: UnixType?

    /// The most recent access time of the original file or directory (PAX only).
    public let accessTime: Date?
    
    /// The most recent modification time of the original file or directory.
    public let modificationTime: Date
    
    /// The creation time of the original file or directory (PAX only).
    public let creationTime: Date?
    
    /// Owner's ID.
    public let ownerID: Int?
    
    /// Owner's group ID.
    public let groupID: Int?

    /// Owner's user name.
    public let ownerUserName: String?

    /// Owner's group name.
    public let ownerGroupName: String?

    public let deviceMajorNumber: Int?

    public let deviceMinorNumber: Int?

    /// Name of the character set used to encode entry's data (PAX only).
    public let charset: String?

    /// Comment associated with the entry (PAX only).
    public let comment: String?

    // TODO: Describe order in which formats' features are used to set this property.
    /// Path to a linked file for symbolic link entry.
    public let linkName: String?

    let isGlobalExtendedHeader: Bool
    let isLocalExtendedHeader: Bool
