Skip to content
This repository was archived by the owner on Aug 11, 2021. It is now read-only.
This repository was archived by the owner on Aug 11, 2021. It is now read-only.

fstream ignores directories with long paths on windows  #30

Open
@sdarnell

Description

@sdarnell

When piping fstream.Reader() into tar.Pack() fstream ignores long pathnames on windows.

The calling code looks like this, but the problem seems to be on fstream side of the pipe, because I added a filter to log entries as they go by and nothing comes out.

  return fstream.Reader({ path: dirPath, type: 'Directory' }).pipe(
    tar.Pack({ noProprietary: true })).pipe(zlib.createGzip());

To be more precise, I think it is directories that get ignored.

Looking in lib/reader.js@104 and there is some code (legacy?) which tries to convert paths into the UNC form \\?\... when the paths hit 260 characters.

Firstly I think this code is probably redundant now as my understanding is that libuv handles the mapping to long names.

But what seems to be happening is that the code is called twice (not sure quite why), and performs the conversion twice - incorrectly. So I end up with invalid paths starting \\?\\\_\c:\
The underscore comes from what was previously a ?

My guess is that the whole win32 if at line 104 should be removed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions