java 디렉토리 - 폴더에있는 모든 파일의 파일 이름 가져 오기




구조 리스트 (4)

가능한 중복 :
폴더에있는 모든 파일 읽기

폴더에있는 모든 파일 이름 목록을 만들어야합니다.

예를 들어, 내가 가지고있는 것 :

000.jpg
012.jpg
013.jpg

[000,012,013] 을 값으로 사용하여 ArrayList 에 저장하려고합니다.

Java에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

추신 : 나는 Mac OS X에있어.


Answers

documentation 를 보는 방법은 다음과 같습니다.

먼저 IO를 다루기 때문에 java.io package 살펴 본다.

재미있는 두 가지 클래스가 있습니다 : FileFilterFileNameFilter . 첫 번째를 클릭하면 File 클래스에 listFiles() 메서드가 있음을 알 수 있습니다. 그리고 그 방법에 대한 문서는 다음과 같습니다 :

이 추상 패스 명이 나타내는 디렉토리 내의 파일을 나타내는 추상 패스 명의 배열을 돌려줍니다.

File JavaDoc에서 위로 스크롤하면 생성자가 보입니다. 그리고 그게 바로 File 인스턴스를 만들고 listFiles() 를 호출하는 데 필요한 모든 것입니다. 스크롤을 계속하면 다른 운영 체제에서 파일의 이름이 지정되는 방식에 대한 정보를 볼 수 있습니다.


다음과 같이 할 수 있습니다.

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
  if (listOfFiles[i].isFile()) {
    System.out.println("File " + listOfFiles[i].getName());
  } else if (listOfFiles[i].isDirectory()) {
    System.out.println("Directory " + listOfFiles[i].getName());
  }
}

JPEG 파일 또는 모든 파일 만 가져 오시겠습니까?


생성자에 디렉토리 경로를 전달하여 File 객체를 만듭니다. listFiles() 를 사용하여 디렉토리의 각 파일에 대한 File 객체 배열을 검색 한 다음 getName() 메서드를 호출하여 파일 이름을 가져옵니다.

List<String> results = new ArrayList<String>();


File[] files = new File("/path/to/the/directory").listFiles();
//If this pathname does not denote a directory, then listFiles() returns null. 

for (File file : files) {
    if (file.isFile()) {
        results.add(file.getName());
    }
}

Dir.new('/home/user/foldername').each { |file| puts file }




java file folder filenames