[java] 폴더가 있는지 확인하는 방법

새로운 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"))) {
  ...
}

isDirectorytrue파일이 디렉토리 인 경우를 리턴 합니다. 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;
  }

}