Làm thế nào để xóa thư mục có tập tin, thư mục con trong Java? | How to delete directory have file and subfolder in Java?

Trong Java để xóa một thư mục bạn có thể sử dụng File.delete(), nhưng với điều kiện folder đó phải là folder trống, nếu folder đó có tập tinh, hay một thư mục tền tại, thì lệnh delete sẽ không được thực thi. Bài viết này tôi sẽ hướng dẫn cách xóa một thư mục không rỗng trong Java.

Để xử lý việc xóa một thư mục có tồn tại các tập tin hay thư mục nào đó, ta sẽ sử dụng phương pháp đệ quy để xử lý, đây cũng là các xử lý phổ biến nhất hiện nay cho trường hợp này. Nếu bạn chưa biết để quy là gì thì hãy tham khảo thêm bài viết đệ quy.

Để trình bày(demo) tôi sẽ tạo một thư mục tên "DEMO_DELETE_FOLDER" có cấu trúc và các tập tin như hình bên dưới, để thực hiện việc xóa thư mục.



Mã nguồn - Source:

/**
 * @(#)deleteDirectory.java
 *
 * deleteDirectory application
 *
 * @author Bui Ngoc Son
 * @website vnlives.net
 * @version 1.00 2014/8/16
 */

import java.io.File;

public class deleteDirectory {
   
    public static void main(String[] args) {

        String pathFolder = "D:\\VNLIVES.NET\\DEMO_DELETE_FOLDER";
        File fileFolder = new File(pathFolder);
       
        if (!fileFolder.exists()) {
            System.out.print("Path is not exist");
            return;
        }
       
        if (fileFolder.isFile()) {
            System.out.println("This is not folder.");
            return;
        }
       
        deleteFolder(fileFolder);
       
    }
   
   
    public static void deleteFolder(File file) {
        if (!file.exists())
        {
            System.out.println("Path is not exist!");
            return;
        }
           
        if (file.isDirectory()) {
            for (File fileTmp : file.listFiles()) {
                deleteFolder(fileTmp);
            }
        }

        System.out.println("Delete: " + file.getAbsoluteFile());
        file.delete();           
              
    }   
   
}


Kết quả - Result:




Write: +Bui Ngoc Son




1 comment:

  1. mình muốn tạo 1 file.exe xóa các thư mục con(có chữa file) quá 60 ngày (trong thư mục mẹ) bạn hướng dẫn giúp mình với, cảm ơn bạn!

    ReplyDelete