Archive

Archive for the ‘Directory’ Category

Sao chép thư mục trong Java

Ví dụ sau minh họa việc sao chép một thư mục và tất cả các thư mục con + các files của nó sang một thư mục mới

package quyetdv.java.javaio.directory;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class CopyDirectory {
    public static void main(String[] args) {
        File srcFolder = new File("D:\\Test");
        File destFolder = new File("D:\\TestDest");
        // make sure source exists
        if (!srcFolder.exists()) {
            System.out.println("Directory does not exist.");
            System.exit(0);
        } else {
            try {
                copyFolder(srcFolder, destFolder);
            } catch (IOException e) {
                e.printStackTrace();
                System.exit(0);
            }
        }
    }
     private static void copyFolder(File src, File dest) throws IOException {
         if (src.isDirectory()) {
             // if directory not exists, create it
             if (!dest.exists()) {
                 dest.mkdir();
                 System.out.println("Directory copied from " + src + " to " + dest);
                 // list all the directory contents
                 String files[] = src.list();
                 for (String file : files) {
                     // construct the src and dest file structure
                     File srcFile = new File(src, file);
                     File destFile = new File(dest, file);
                     // recursive copy
                     copyFolder(srcFile, destFile);
                 }
             }
          } else {
             // if file, then copy it
             // Use bytes stream to support all file types
             InputStream in = new FileInputStream(src);
             OutputStream out = new FileOutputStream(dest);
             byte[] buffer = new byte[1024];
             int length;
             // copy the file content in bytes
             while ((length = in.read(buffer)) > 0) {
                 out.write(buffer, 0, length);
             }
             in.close();
             out.close();
             System.out.println("File copied from " + src + " to " + dest);
         }
     }
}
Advertisements
Categories: Directory

Xóa thư mục trong Java

Để xóa một thư mục, bạn có thể đơn giản sử dụng phương thức File.delete() với điều kiện là thư mục đó phải trống.

Phổ biến hơn là bạn thường phải thực hiện xóa đệ quy trong một thư mục, tức là tất cả các thư mục con và các file phải được xóa hết. Ví dụ sau minh họa việc đó :

package quyetdv.java.javaio.directory;
import java.io.File;
import java.io.IOException;
public class DeleteDirectory {
    private static final String SRC_FOLDER = "D:\\Test";
    public static void main(String[] args) {
        File directory = new File(SRC_FOLDER);
        // make sure directory exists
        if (!directory.exists()) {
             System.out.println("Directory does not exist.");
             System.exit(0);
        } else {
             try {
                 delete(directory);
             } catch (Exception e) {
                 e.printStackTrace();
                 System.exit(0);
             }
        }
        System.out.println("Done");
    }
    private static void delete(File file) throws IOException {
        if (file.isDirectory()) {
           // directory is empty, then delete it
           if (file.list().length == 0) {
               file.delete();
               System.out.println("Directory is deleted : "
                 + file.getAbsolutePath());
           } else {
                // list all the directory contents
                String files[] = file.list();
                for (String temp : files) {
                   // construct the file structure
                   File fileDelete = new File(file, temp);
                   // recursive delete
                   delete(fileDelete);
                }
                // check the directory again, if empty then delete it
                if (file.list().length == 0) {
                    file.delete();
                    System.out.println("Directory is deleted : "
                      + file.getAbsolutePath());
                }
            }
        } else {
            // if file, then delete it
            file.delete();
            System.out.println("File is deleted : " + file.getAbsolutePath());
        }
     }
}

Kết quả :

DeleteDirectory

Categories: Directory

Tạo thư mục trong Java

Trong Java, để tạo một thư mục, sử dụng code sau :

1. Tạo một thư mục đơn 

new File(“C:\\Directory1”).mkdir();

2. Tạo một thư mục tên “Directory2” và tất cả các thư mục con của nó “Sub2”, “Sub-Sub2” cùng lúc

new File(“C:\\Directory2\\Sub2\\Sub-Sub2”).mkdirs()

Cả 2 phương thức đều trả về một giá trị boolean cho biết trạng thái của thao tác : true nếu thành công, false nếu ngược lại

Ví dụ : 

package quyetdv.java.javaio.directory;
 
import java.io.File;
 
public class CreateDirectoryExample
{
    public static void main(String[] args)
    { 
        File file = new File("C:\\Directory1");
        if (!file.exists()) {
           if (file.mkdir()) {
              System.out.println("Directory is created!");
           } else {
              System.out.println("Failed to create directory!");
           }
        }
 
        File files = new File("C:\\Directory2\\Sub2\\Sub-Sub2");
        if (files.exists()) {
            if (files.mkdirs()) {
                System.out.println("Multiple directories are created!");
            } else {
                System.out.println("Failed to create multiple directories!");
            }
        }
     }
}

 

Categories: Directory