새로운 Java 7 IO 기능을 사용하여 조금 재생하고 있습니다. 실제로 폴더의 모든 xml 파일을 수신하려고합니다. 그러나 폴더가 존재하지 않으면 예외가 발생합니다. 새 IO에 폴더가 있는지 어떻게 확인할 수 있습니까?
public UpdateHandler(String release) {
log.info("searching for configuration files in folder " + release);
Path releaseFolder = Paths.get(release);
try(DirectoryStream<Path> stream = Files.newDirectoryStream(releaseFolder, "*.xml")){
for (Path entry: stream){
log.info("working on file " + entry.getFileName());
}
}
catch (IOException e){
log.error("error while retrieving update configuration files " + e.getMessage());
}
}
답변
사용 java.nio.file.Files
:
Path path = ...;
if (Files.exists(path)) {
// ...
}
이 메소드 LinkOption
값을 선택적으로 전달할 수 있습니다 .
if (Files.exists(path, LinkOption.NOFOLLOW_LINKS)) {
방법도 있습니다 notExists
:
if (Files.notExists(path)) {
답변
아주 간단합니다 :
new File("/Path/To/File/or/Directory").exists();
그리고 당신이 확신하려면 디렉토리입니다 :
File f = new File("/Path/To/File/or/Directory");
if (f.exists() && f.isDirectory()) {
...
}
답변
새 IO가있는 디렉토리가 있는지 확인하려면 다음을 수행하십시오.
if (Files.isDirectory(Paths.get("directory"))) {
...
}
isDirectory
true
파일이 디렉토리 인 경우를 리턴 합니다. false
파일이 존재하지 않거나 디렉토리가 아니거나 파일이 디렉토리인지 판별 할 수 없습니다.
문서를 참조하십시오 .
답변
Path를로 바꾸고 File
존재를 테스트해야합니다.
for(Path entry: stream){
if(entry.toFile().exists()){
log.info("working on file " + entry.getFileName());
}
}
답변
폴더 디렉토리의 문자열에서 파일 생성
String path="Folder directory";
File file = new File(path);
사용 방법이 존재합니다.
원하는 폴더를 생성하려면 mkdir ()을 사용하십시오.
if (!file.exists()) {
System.out.print("No Folder");
file.mkdir();
System.out.print("Folder created");
}
답변
디렉토리가 존재하는지 여부 exists()
를 isDirectory()
암시 적으로 확인 하므로 메소드 를 별도로 호출 할 필요가 없습니다.
답변
import java.io.File;
import java.nio.file.Paths;
public class Test
{
public static void main(String[] args)
{
File file = new File("C:\\Temp");
System.out.println("File Folder Exist" + isFileDirectoryExists(file));
System.out.println("Directory Exists" + isDirectoryExists("C:\\Temp"));
}
public static boolean isFileDirectoryExists(File file)
{
if (file.exists())
{
return true;
}
return false;
}
public static boolean isDirectoryExists(String directoryPath)
{
if (!Paths.get(directoryPath).toFile().isDirectory())
{
return false;
}
return true;
}
}