Thread overview
[Issue 8967] dirEntries throws when encountering a "long path" on windows
Aug 18, 2021
Stefan Liebig
Sep 14, 2022
anonymous4
Sep 17, 2022
Ate Eskola
August 18, 2021
https://issues.dlang.org/show_bug.cgi?id=8967

Stefan Liebig <StefanLiebig@web.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |StefanLiebig@web.de

--- Comment #12 from Stefan Liebig <StefanLiebig@web.de> ---
I am currently struggling with this limitation and I wonder how e.g. the JVM
deals with this limitation.
As you probably know when using Java IO this limitation does not exist although
the JVM uses the win32 API.
A little bit of research (google) leads to
https://stackoverflow.com/questions/10094365/how-does-java-circumvent-the-windows-max-path-winapi-limitation
And it seems that the JVM internally does the required prefixing with "\\?\" of
path names before calling the win32 API.

--
September 14, 2022
https://issues.dlang.org/show_bug.cgi?id=8967

--- Comment #13 from anonymous4 <dfj1esp02@sneakemail.com> ---
Another option is long path awareness in Windows 10 1607: https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation

--
September 17, 2022
https://issues.dlang.org/show_bug.cgi?id=8967

Ate Eskola <Ajieskola@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |Ajieskola@gmail.com
         Resolution|---                         |INVALID

--- Comment #14 from Ate Eskola <Ajieskola@gmail.com> ---
Resolved as invalid, as requested from this forum post: https://forum.dlang.org/thread/cqgrubkqocbcdxslvkfl@forum.dlang.org

Quoting the rationale here:

> The fix was to use an application manifest file and declare the application as being long path aware (see [another forum post](https://forum.dlang.org/thread/wpritqbjxkifcueotlgr@forum.dlang.org)). The issue should be closed IMO as dirEntries should throw an exception when your program encounters a long path while not being declared as long path aware (it would then match the behavior of std::filesystem:::recursive_directory_iterator when using Visual C++ which throw a runtime_error when it encounters a long path unless your program is declared to be long path aware in its manifest).

--