From 95a5f6bf2dd822d4a67bef0fda3074dabea2d8c2 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Thu, 4 Jun 2020 15:59:48 -0700 Subject: [PATCH] Windows: Handle ERROR_DIRECTORY in std.fs.deleteDirAbsolute when called on a file path ERROR_DIRECTORY (267) is returned from kernel32.RemoveDirectoryW if the path is not a directory. Note also that os.DirectDirError already includes NotDir Before: error.Unexpected: GetLastError(267): The directory name is invalid. After: error: NotDir --- lib/std/os/windows.zig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index f00b339a5001ab49b3af62b4b504f0a330c53d01..cfa50e162d2f9161f356d85a71d8fcd7e2ba90d2 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -745,6 +745,7 @@ pub const RemoveDirectoryError = error{ FileNotFound, DirNotEmpty, Unexpected, + NotDir, }; pub fn RemoveDirectory(dir_path: []const u8) RemoveDirectoryError!void { @@ -757,6 +758,7 @@ pub fn RemoveDirectoryW(dir_path_w: [*:0]const u16) RemoveDirectoryError!void { switch (kernel32.GetLastError()) { .PATH_NOT_FOUND => return error.FileNotFound, .DIR_NOT_EMPTY => return error.DirNotEmpty, + .DIRECTORY => return error.NotDir, else => |err| return unexpectedError(err), } } -- 2.54.0