On Tuesday, 18 March 2014 at 02:02:04 UTC, Vladimir Panteleev wrote:

http://d.puremagic.com/issues/show_bug.cgi?id=8967

ok, thanks.  I was able to work around my issues

The basic solution, as you indicated, is to prefix any long paths. Also the prefix is only usable on an absolute path.

nm = r"\\?\" ~ absolutePath(e.name);

One more issue I ran into was that our remove() and rmdir() don't override the read-only attribute for you. You have to check and clear this. If you are doing these getAttributes and setAttributes calls on long paths, you'll run into the same issues and need the above expansion.

uint att = getAttributes(fn);
att ^= FILE_ATTRIBUTE_READONLY;
setAttributes(fn, att);

So, I think the issue has enough notes in it to create a fix, and it would be a general solution that would make all of the windows unicode path calls support the 32K unicode path limit.

An option to handle  the read-only attribute would be nice also...

Reply via email to