답변:
가정 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를 따르십시오.
import java.nio.file.*;
static Boolean isDir(Path path) {
if (path == null || !Files.exists(path)) return false;
else return Files.isDirectory(path);
}
또는 String
a 가 파일 시스템에 존재하지 않는 경우 시스템이 알려줄 수있는 방법이 없습니다 . 예를 들면 다음과 같습니다.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
따라서 두 경우 모두 시스템이 false를 반환합니다. 이것은 모두 사실 java.io.File
과java.nio.file.Path