[java] 경로가 파일 또는 폴더를 나타내는 지 확인

Stringa가 파일 또는 디렉토리의 경로를 나타내는 지 확인하는 유효한 방법이 필요합니다 . 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

Javadoc 참조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


답변

nio API를 유지하면서 깨끗한 솔루션 :

Files.isDirectory(path)
Files.isRegularFile(path)


답변

이러한 확인을 수행하려면 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()){



  }


답변

또는 Stringa 가 파일 시스템에 존재하지 않는 경우 시스템이 알려줄 수있는 방법이 없습니다 . 예를 들면 다음과 같습니다.filedirectory

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.Filejava.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;
  }