วิธีที่ 1: Files.createDirectories() (NIO.2 - Java 7+)
สร้าง Directory รวมถึง Parent Directories ที่ยังไม่มีอยู่
import java.io.IOException;
import java.nio.file.*;
import java.util.Scanner;
public class Demo {
public static void main(String args[]) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter base path (e.g. D:):");
String base = sc.next();
System.out.println("Enter directory hierarchy (e.g. sample1/sample2/sample3/final):");
String hierarchy = sc.next();
Path path = Paths.get(base, hierarchy);
Files.createDirectories(path);
System.out.println("Directory hierarchy created successfully");
}
}
วิธีที่ 2: File.mkdirs() (Legacy IO)
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class Demo {
public static void main(String args[]) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("Enter base path:");
String base = sc.next();
System.out.println("Enter directory hierarchy:");
String hierarchy = sc.next();
File file = new File(base, hierarchy);
boolean created = file.mkdirs();
System.out.println(created ? "Directory created successfully" : "Couldn't create directory");
}
}
ผลลัพธ์ตัวอย่าง
Enter base path: D: Enter directory hierarchy: sample1/sample2/sample3/final_directory Directory hierarchy created successfully
โครงสร้างที่สร้าง
D:\sample1\sample2\sample3\final_directory
ความแตกต่าง
| Method | Package | Return | Exception | Recursive Create |
|---|---|---|---|---|
| Files.createDirectories() | java.nio.file | Path | IOException (Checked) | ใช่ |
| File.mkdirs() | java.io | boolean | ไม่โยน Exception | ใช่ |
แนะนำ
ใช้ Files.createDirectories() เพราะเป็น Modern API, Rich Exceptions, ทำงานกับ Path, รองรับ Symbolic Links, Attributes