diff --git a/lib/std/fs/test.zig b/lib/std/fs/test.zig index 8d7ef5172e..b3cc1fe569 100644 --- a/lib/std/fs/test.zig +++ b/lib/std/fs/test.zig @@ -813,26 +813,3 @@ fn run_lock_file_test(contexts: []FileLockTestContext) !void { try threads.append(try std.Thread.spawn(ctx, FileLockTestContext.run)); } } - -test "deleteDir" { - var tmp_dir = tmpDir(.{}); - defer tmp_dir.cleanup(); - - // deleting a non-existent directory - testing.expectError(error.FileNotFound, tmp_dir.dir.deleteDir("test_dir")); - - var dir = try tmp_dir.dir.makeOpenPath("test_dir", .{}); - var file = try dir.createFile("test_file", .{}); - file.close(); - dir.close(); - - // deleting a non-empty directory - testing.expectError(error.DirNotEmpty, tmp_dir.dir.deleteDir("test_dir")); - - dir = try tmp_dir.dir.openDir("test_dir", .{}); - try dir.deleteFile("test_file"); - dir.close(); - - // deleting an empty directory - try tmp_dir.dir.deleteDir("test_dir"); -} diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig index 2aa222414f..de0d0ea45f 100644 --- a/lib/std/os/windows.zig +++ b/lib/std/os/windows.zig @@ -764,7 +764,6 @@ pub const DeleteFileError = error{ Unexpected, NotDir, IsDir, - DirNotEmpty, }; pub const DeleteFileOptions = struct { @@ -819,7 +818,7 @@ pub fn DeleteFile(sub_path_w: []const u16, options: DeleteFileOptions) DeleteFil 0, ); switch (rc) { - .SUCCESS => CloseHandle(tmp_handle), + .SUCCESS => return CloseHandle(tmp_handle), .OBJECT_NAME_INVALID => unreachable, .OBJECT_NAME_NOT_FOUND => return error.FileNotFound, .INVALID_PARAMETER => unreachable, @@ -827,21 +826,6 @@ pub fn DeleteFile(sub_path_w: []const u16, options: DeleteFileOptions) DeleteFil .NOT_A_DIRECTORY => return error.NotDir, else => return unexpectedStatus(rc), } - - // If a directory fails to be deleted, CloseHandle will still report success - // Check if the directory still exists and return error.DirNotEmpty if true - if (options.remove_dir) { - var basic_info: FILE_BASIC_INFORMATION = undefined; - switch (ntdll.NtQueryAttributesFile(&attr, &basic_info)) { - .SUCCESS => return error.DirNotEmpty, - .OBJECT_NAME_NOT_FOUND => return, - .OBJECT_PATH_NOT_FOUND => return, - .INVALID_PARAMETER => unreachable, - .ACCESS_DENIED => return error.AccessDenied, - .OBJECT_PATH_SYNTAX_BAD => unreachable, - else => |urc| return unexpectedStatus(urc), - } - } } pub const MoveFileError = error{ FileNotFound, Unexpected };