Commit 95a5f6bf2d

Ryan Liptak <squeek502@hotmail.com>
2020-06-05 00:59:48
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
1 parent f7b6957
Changed files (1)
lib
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),
         }
     }