2016-07-17 3 views
-2

디렉토리에 폴더가 있습니다. 나는 항상 하나의 파일 만 있고 그것은 .txt 파일이라는 것을 알고있다. 하지만 파일 이름을 모르겠습니다. Java로 어떻게 액세스합니까? 경로는 어떻게 생겼습니까?파일 이름이없는 파일 액세스

+0

확인 다음 링크를 http://stackoverflow.com/questions/5694385/getting-the-filenames-of-all-files-in-a-folder?answertab=active#tab-top – Abbas

+2

'파일 #listFiles()' – emotionlessbananas

답변

1

당신은 디렉토리를 열고 파일을 찾을 때까지 그 내용을 통해 갈 수 :

public static File getTextFileInDirectory(String dirPath) { 
    File dir = new File(dirPath); 
    for (File f : dir.listFiles()) { 
     if (f.isFile() && f.getName().endsWith(".txt")) { 
      return f; 
     } 
    } 
    return null; 
} 

편집 :이 디렉토리를 가정하는 것이 안전 경우 아래의 의견을 바탕으로
는 항상에 파일이 및 디렉토리 (예를 들면, 하위 디렉토리)의 다른 아무것도,이 코드는 매우 간단 할 수 있습니다 만 디렉토리에 하나 개의 파일이있을 것이다 알고 있기 때문에

public static File getTextFileInDirectory(String dirPath) { 
    return new File(dirPath).listFiles()[0]; 
} 
+0

폴더에 하나의 파일 만 포함되어 있으므로 목록이 비어 있지 않고 첫 번째 파일을 반환하는지 확인할 수 있습니다. –

+0

@ cricket_007 "항상 하나의 파일이 있습니다. 파일이고 .txt 파일입니다. " 이는 파일이 디렉토리의 유일한 파일인지, 아니면 ** 파일 **인지를 의미하며 디렉토리에 다른 항목 (예 : 하위 디렉토리)도 포함될 수 있습니다. – Mureinik

+0

그 밖의 것은 없습니다! 그 경우에 – Tobi123

1

, 당신은 디렉토리의 파일의 배열을 얻을 수 있습니다 돌아온다. 존재하는 경우는 최초의 요소, 그렇지 않은 경우는 null

public static File getFileFromDir(File directory) { 
    File[] dirFiles = directory.listFiles(); 
    return dirFiles.length > 0 ? dirFiles[0] : null; 
}