ฉันต้องการวิธีการที่ถูกต้องในการตรวจสอบว่าString
มีพา ธ สำหรับไฟล์หรือไดเรกทอรีหรือไม่ ชื่อไดเรกทอรีที่ถูกต้องใน Android คืออะไร? ชื่อโฟลเดอร์สามารถมี'.'
ตัวอักษรได้ดังนั้นระบบจะเข้าใจได้อย่างไรว่ามีไฟล์หรือโฟลเดอร์อย่างไร
ฉันต้องการวิธีการที่ถูกต้องในการตรวจสอบว่าString
มีพา ธ สำหรับไฟล์หรือไดเรกทอรีหรือไม่ ชื่อไดเรกทอรีที่ถูกต้องใน Android คืออะไร? ชื่อโฟลเดอร์สามารถมี'.'
ตัวอักษรได้ดังนั้นระบบจะเข้าใจได้อย่างไรว่ามีไฟล์หรือโฟลเดอร์อย่างไร
คำตอบ:
สมมติว่าเป็นของคุณpath
String
File file = new File(path);
boolean exists = file.exists(); // Check if the file exists
boolean isDirectory = file.isDirectory(); // Check if it's a directory
boolean isFile = file.isFile(); // Check if it's a regular file
หรือคุณสามารถใช้คลาส NIO Files
และตรวจสอบดังนี้:
Path file = new File(path).toPath();
boolean exists = Files.exists(file); // Check if the file exists
boolean isDirectory = Files.isDirectory(file); // Check if it's a directory
boolean isFile = Files.isRegularFile(file); // Check if it's a regular file
path
String
ในตัวอย่างของฉันคือ ทำไมคุณไม่สร้างFile
อินสแตนซ์? โปรดทราบว่าสิ่งนี้จะไม่เปลี่ยนแปลงอะไรในระบบไฟล์
root
อาจเป็นไฟล์ ไฟล์ไม่จำเป็นต้องมี.something
นามสกุล
ทำความสะอาดโซลูชันในขณะที่อยู่กับ nio API:
Files.isDirectory(path)
Files.isRegularFile(path)
File
วัตถุใหม่ทุกครั้ง บันทึกหน่วยความจำ
โปรดติดกับ nio API เพื่อทำการตรวจสอบเหล่านี้
import java.nio.file.*;
static Boolean isDir(Path path) {
if (path == null || !Files.exists(path)) return false;
else return Files.isDirectory(path);
}
String path = "Your_Path";
File f = new File(path);
if (f.isDirectory()){
}else if(f.isFile()){
}
ไม่มีวิธีใดที่ระบบจะบอกคุณว่ามีString
ตัวแทนfile
หรือdirectory
ถ้าไม่มีอยู่ในระบบไฟล์ ตัวอย่างเช่น:
Path path = Paths.get("/some/path/to/dir");
System.out.println(Files.isDirectory(path)); // return false
System.out.println(Files.isRegularFile(path)); // return false
และสำหรับตัวอย่างต่อไปนี้:
Path path = Paths.get("/some/path/to/dir/file.txt");
System.out.println(Files.isDirectory(path)); //return false
System.out.println(Files.isRegularFile(path)); // return false
ดังนั้นเราจะเห็นว่าในทั้งสองกรณีระบบคืนเท็จ นี่เป็นเรื่องจริงสำหรับทั้งสองjava.io.File
และjava.nio.file.Path
ในการตรวจสอบว่าสตริงแสดงถึงพา ธ หรือไฟล์โดยทางโปรแกรมคุณควรใช้วิธีการ API เช่น isFile(), isDirectory().
ระบบเข้าใจได้อย่างไรว่ามีไฟล์หรือโฟลเดอร์?
ฉันเดาว่ารายการไฟล์และโฟลเดอร์จะถูกเก็บไว้ในโครงสร้างข้อมูลและจัดการโดยระบบไฟล์
private static boolean isValidFolderPath(String path) {
File file = new File(path);
if (!file.exists()) {
return file.mkdirs();
}
return true;
}
public static boolean isDirectory(String path) {
return path !=null && new File(path).isDirectory();
}
เพื่อตอบคำถามโดยตรง