[Issue 17329] File.remove() has problems with long filenames (>128 bytes)

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Apr 17 05:54:59 PDT 2017


https://issues.dlang.org/show_bug.cgi?id=17329

b2.temp at gmx.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |b2.temp at gmx.com

--- Comment #1 from b2.temp at gmx.com ---
(In reply to Rainer Koschnick from comment #0)
> This is a rather weird issue that only pops up in a release build:
> 
> std.file.FileException at D:\Dlang\dmd2\windows\bin\..\..\src\phobos\std\file.
> d(733):
> 12345678901234567890123456789012345678901234567890123456789012345678901234567
> 89012345678901234567890123456789012345678901234.cbr: The system cannot find
> the file specified.
> 
> Filenames up to 128 bytes work fine, anything above it throws this exception.
> 
> Building in Visual Studio 2017, output is MS-COFF. The debug build works
> fine.

Try

void removeFileEx(string filename)
{
    import std.file : remove;
    return remove("\\?\" ~ filename);
}

Adding the prefix turns the filename into a fully qualified name and should
have for effect to remove the MAX_PATH (260 chars) limitation.

--


More information about the Digitalmars-d-bugs mailing list