Tôi đang sử dụng Windows 7 với java 7 cập nhật 6 và thấy hành vi lạ này (ít nhất là đối với tôi) -
Tôi có hai tệp E:\delete1.txt
và E:\delete2.txt
cả hai đều chỉ đọc file, khi tôi cố gắng để xóa tập tin như sau đó bị xóa mà không cần bất kỳ vấn đề -Sự khác biệt giữa Tệp # xóa (Đường dẫn) và Tệp # xóa()
File file = new File("E:\\delete1.txt");
assertTrue(file.delete());
Nhưng khi tôi xóa tập tin sử dụng API nio như sau -
Path path = Paths.get("E:\\delete2.txt");
Files.delete(path);
Nó ném java.nio.file.AccessDeniedException
.
Tại sao hành vi khác nhau cho cùng một hoạt động với API nio cũ và mới?
và nếu bạn trao đổi các tệp bạn đang xóa xung quanh, tức là 'NIO' api xóa' delete1.txt' và tệp api cũ 'Xóa' 'xóa2.txt' điều gì sẽ xảy ra? –
gọi nio bị lỗi trong mọi trường hợp. – Premraj
@MichaelBorgwardt Tại sao lạ? Ông chỉ đơn giản là cố gắng để xóa một tập tin (mà chỉ xảy ra để đọc) – assylias