Java는 지정된 폴더 아래에서 모든 파일을 참조 할 수 있도록 스캔합니다. 특정 내용은 다음과 같습니다
폴더의 모든 파일을 스캔하십시오. 폴더의 레이어 수에는 제한이 없으므로 수십 또는 수백 개의 레이어 일 수 있습니다. 일반적으로 지정된 폴더에서 모든 파일을 가로 지르는 두 가지 방법이 있습니다.
아래는 재귀 및 비수체 구현을 포함한 두 가지 구현 코드를 제공합니다. 코드는 다음과 같습니다.
자바 코드 :
패키지 q.test.filescanner; import java.io.file; java.util.arraylist 가져 오기; java.util.linkedList 가져 오기; q.test.filescanner.exception.scanfileSexception 가져 오기; / *** @Author Evil Mr.*/ Public Class FolderFilescanner {private static arraylist <bood> scanfiles = new ArrayList <Object> (); / ** LinkedList 구현 **/ Private STATIC LINKEDLIST <FILE> QUEUEFILES = NEW LINKEDLIST <file> (); / *** todo : 지정된 폴더 아래에서 지정된 파일을 재귀 적으로 스캔* @return arraylist <botor>* @Author Mr. Evil (LQ)* @Time 2017 년 11 월 3 일*/ public static arraylist <boodfiles> scanfileswithRecursion (Strows PolderPath) scanfileSexcection {arrayList> directries = new arraylist <string> (); 파일 디렉토리 = 새 파일 (FolderPath); if (! directory.isdirectory ()) {Throw New ScanFileSexception ( ' " + FolderPath +'" ' + "입력 경로는 디렉토리가 아니므로 디렉토리의 올바른 경로를 입력하십시오.^_^...^_^"); } if (directory.isdirectory ()) {file [] filelist = directory.listfiles (); for (int i = 0; i <fileList.length; i ++) { / ** 현재 폴더 인 경우 재귀 스캔 폴더 ** / if (filElist [i] .isdirectory ()) {directries.add (filelist [i] .getabsolutepath ()); / ** 아래 폴더를 재귀 적으로 스캔 **/ scanfileswithRecursion (filElist [i] .getabsolutepath ()); } / ** folder ** / else {scanfiles.add (filelist [i] .getabsolutepath ()); }}} return scanfiles; } / ***** todo : 지정된 폴더 아래의 모든 파일을 비처방 방식으로 스캔합니다* @return arraylist <botorpather 폴더 스캔 해야하는 폴더의 경로* @Author Mr. Evil (LQ)* @Time 2017 년 11 월 3 일* / public static arraylist> scanfilestrows (string filestore) 새 파일 (FolderPath); if (! directory.isdirectory ()) {Throw New ScanFileSexception ( ' " + FolderPath +'" ' + "입력 경로는 디렉토리가 아니므로 디렉토리의 올바른 경로를 입력하십시오.^_^...^_^"); } else {// 첫 번째 레이어 디렉토리 파일 [] files = directory.listfiles (); // 스캔 된 파일 배열을 전환합니다. 폴더 인 경우 LinkedList에 넣고 나중에 (int i = 0; i <files.length; i ++) {if (files [i] .isdirectory ()) {queuefiles.add (files [i]); } else {// 파일 이름을 scanfiles.add에 일시적으로 넣습니다 (파일 [i] .getabsolutepath ()); }} // linkedlist가 비어 있지 않은 경우 링크드 목록이 끊어지지 않은 경우 (! queuefiles.isempty ()) {// 링크드리스트 Headdirectory = queuefiles.removeFirst ()에서 첫 번째 파일을 꺼내십시오. file [] currentFiles = headdirectory.listfiles (); for (int j = 0; j <currentfiles.length; j ++) {if (currentFiles [j] .isdirectory ()) {// 여전히 폴더 인 경우 linkedlist queuefiles.add (currentFiles [j])에 넣으십시오. } else {scanfiles.add (currentFiles [j] .getAbsolutePath ()); }}} return scanfiles; }}}}} return scanfiles; }}}}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.