Trong bài viết trước, mình đã hướng dẫn các bạn các cách để tạo mới một thư mục trong Java. Trong bài viết này, mình sẽ hướng dẫn các bạn các cách để xóa thư mục các bạn nhé!
- Cách thứ nhất là chúng ta có thể sử dụng đối tượng File.
Xóa một thư mục trong Java sử dụng đối tượng File có phần phức tạp hơn. Bản thân đối tượng File cũng cung cấp cho chúng ta một phương thức là delete() nhưng phương thức này chỉ xóa những thư mục rỗng. Nếu thư mục có chứa tập tin và những thư mục con khác thì khi chúng ta gọi phương thức này, Java sẽ báo lỗi ngay.
Nhưng không sao, phương thức sau sẽ giúp các bạn xóa hoàn toàn một thư mục mà không phải lo lắng gì cả
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public boolean delete(File folder) { // Kiểm tra thư mục có bị null hay không? if (folder == null) return false; // Kiểm tra thư mục có tồn tại hay không? if (!folder.exists()) return true; // Kiểm tra thư mục truyền vào có thực sự là một thư mục hay không? if (!folder.isDirectory()) return false; // Đầu tiên chúng ta cần lấy tất cả các tập tin và thư mục con để xóa trước String[] list = folder.list(); if (list != null) { for (int i = 0; i < list.length; i++) { File entry = new File(folder, list[i]); // Nếu là thư mục con, chúng ta sẽ gọi lại phương thức này để xóa chúng if (entry.isDirectory()) { if (!delete(entry)) return false; } else { if (!entry.delete()) return false; } } } // Cuối cùng, chúng ta sẽ xóa thư mục truyền vào return folder.delete(); } |
- Cách thức hai là chúng ta sẽ sử dụng đối tượng Files.
Từ Java 7, đối tượng Files cũng cung cấp một phương thức static là delete() với tham số truyền vào là đối tượng Paths giúp chúng ta xóa một thư mục dễ dàng. Tất nhiên thư mục mà bạn muốn xóa cũng phải là thư mục rỗng nhé.
Ví dụ:
1 2 |
Path dir = Paths.get("F:/test/test2/test3"); Files.delete(dir); |
Nếu thư mục mà bạn truyền vào không phải là thư mục rỗng, khi chúng ta chạy sẽ gặp lỗi ngay!
Ngoài phương thức delete() trên, đối tượng Files còn cung cấp cho chúng ta một phương thức khác, tên là deleteIfExists() để xóa thư mục. Với phương thức này, dù thư mục bạn có tồn tại hay không, chương trình vẫn ko xảy ra lỗi.
1 2 |
Path dir = Paths.get("F:/test/test2/test3"); Files.deleteIfExists(dir); |