Skip to content

std.file: Long paths support on Windows requires explicit \\?\ prefix #9825

Open
@dlangBugzillaToGithub

Description

@dlangBugzillaToGithub

kinke reported this on 2021-06-21T15:28:51Z

Transfered from https://issues.dlang.org/show_bug.cgi?id=22059

Description

```
void main()
{
    import std.file;
    // works
    assert(exists(`\\?\C:\Users\Martin\AppData\Local\dub\packages\mir-algorithm-1.0.1\mir-algorithm\.dub\build\library-unittest-windows-x86_64-ldc_2079-0C3BC09825103C01E6AE45507110137D\library-unittest-windows-x86_64-ldc_2079-0C3BC09825103C01E6AE45507110137D\library-unittest-windows-x86_64-ldc_2079-0C3BC09825103C01E6AE45507110137D.obj`));
    // fails
    assert(exists(`C:\Users\Martin\AppData\Local\dub\packages\mir-algorithm-1.0.1\mir-algorithm\.dub\build\library-unittest-windows-x86_64-ldc_2079-0C3BC09825103C01E6AE45507110137D\library-unittest-windows-x86_64-ldc_2079-0C3BC09825103C01E6AE45507110137D\library-unittest-windows-x86_64-ldc_2079-0C3BC09825103C01E6AE45507110137D.obj`));
}
```

The prefix shouldn't be required and added automatically, as the Visual Studio 2019 linker doesn't require that prefix, nor does the LLD linker, nor does DMD, ...

Phobos should essentially use something very similar to DMD's extendedPathThen() helper: https://github.com/dlang/dmd/blob/ef39b070819216a8d9835e2a66d3e365420763ec/src/dmd/root/filename.d#L1146

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions