On Wednesday, 19 September 2018 at 08:54:42 UTC, Vladimir Panteleev wrote:
BTW, something follows from the above:

write(`C:\` ~ (short path) ~  `con`) will fail

but:

write(`C:\` ~ (long path) ~ `con`) will succeed.

This is just one issue I've noticed... there's probably more lurking.

Also, according to the internet:

write(chainPath(shortDirectory, "A "), "Win32 API strips trailing space"); readText(chainPath(shortDirectory, "A")); // Win32 API strips trailing space

But:
write(chainPath(longDirectory, "A "), "Win32 API strips trailing space");
readText(chainPath(longDirectory, "A")); // File not found

write(chainPath(shortDirectory, "A."));  // fails
write(chainPath(longDirectory, "A."));  // succeeds

This is why I think the whole idea is bankrupt.

This is why we should use the exact same behavior in all cases. Always use `\\?\` or never use it.

Since Windows path handling is weird by default, I'd prefer always using `\\?\`. It's overhead, but not a huge amount of additional overhead compared to filesystem manipulation.

Reply via email to