Bất cứ ai có thể cho tôi biết sự khác biệt giữa hai phương pháp này:
file.mkdir()
file.mkdirs()
Bất cứ ai có thể cho tôi biết sự khác biệt giữa hai phương pháp này:
file.mkdir()
file.mkdirs()
Câu trả lời:
mkdirs()
cũng tạo các thư mục mẹ trong đường dẫn mà nó File
đại diện.
javadocs cho mkdirs()
:
Tạo thư mục được đặt tên theo tên đường dẫn trừu tượng này, bao gồm mọi thư mục mẹ cần thiết nhưng không tồn tại. Lưu ý rằng nếu thao tác này không thành công, nó có thể đã thành công trong việc tạo một số thư mục mẹ cần thiết.
javadocs cho mkdir()
:
Tạo thư mục được đặt tên theo tên đường dẫn trừu tượng này.
Thí dụ:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
sẽ mang lại lợi nhuận false
cho lần đầu tiên [và không có dir nào được tạo ra], và true
cho lần thứ hai, và bạn sẽ tạonon_existing_dir/someDir
mkdir()
trả về true
hay false
không? Javadoc dường như không đề cập đến khía cạnh này.
mkdirs()
sẽ tạo toàn bộ đường dẫn thư mục được chỉ định, nơi mkdir()
sẽ chỉ tạo thư mục dưới cùng nhất, không thành công nếu nó không thể tìm thấy thư mục mẹ của thư mục mà nó đang cố gắng tạo.
Nói cách khác mkdir()
là thích mkdir
và mkdirs()
giống như mkdir -p
.
Ví dụ, hãy tưởng tượng chúng ta có một /tmp
thư mục trống . Đoạn mã sau
new File("/tmp/one/two/three").mkdirs();
sẽ tạo các thư mục sau:
/tmp/one
/tmp/one/two
/tmp/one/two/three
Nơi mã này:
new File("/tmp/one/two/three").mkdir();
sẽ không tạo bất kỳ thư mục nào - vì nó sẽ không tìm thấy /tmp/one/two
- và sẽ trả về false
.
mkdir()
chỉ tạo một thư mục tại một thời điểm, nếu chỉ tạo một thư mục chính. khôn ngoan khác, nó có thể tạo thư mục con (nếu đường dẫn được chỉ định chỉ tồn tại) và không tạo bất kỳ thư mục nào ở giữa hai thư mục bất kỳ. vì vậy nó không thể tạo nhiều thư mục trong một thư mục
mkdirs()
tạo nhiều thư mục (ở giữa hai thư mục) cùng một lúc.