1. Java의 폴더에서 모든 파일을 가로 지르는 두 가지 방법이 있습니다.
1. 재귀 횡단은 일반적으로 개발자가 생각할 수있는 첫 번째 방법입니다. 재귀 트래버스의 장점은 다음과 같습니다. 구현하기가 비교적 간단하고 코드의 양은 비교적 작으며 실행 효율이 높습니다. 단점은 더 많은 메모리를 소비하고 높은 하드웨어가 필요하다는 것입니다.
// 재귀 적으로 전적으로 private void getDirectory (file file) {file flist [] = file.listfiles (); if (flist == null || flist.length == 0) {return 0; } for (file f : flist) {if (f.isdirectory ()) {// 모든 폴더가 여기에 나열됩니다. getDirectory (f); } else {// 모든 파일이 여기에 나열됩니다. }}}2. 비수체 적 트래버스. 재귀 횡단은 이해하기 쉽지만 생각하기는 쉽지 않을 것입니다. 나는 오랫동안 생각했고 Java에는 링크 사역 목록이 있다는 것을 알았습니다. 문자 그대로 링크 된 파일 목록을 저장하는 데 사용된다는 것을 알고 있습니다. 이것이 폴더라면 쉽게 수행 할 수 있습니다. 구체적인 아이디어는 폴더를 통과 할 때 폴더 인 경우 링크드 목록에 추가되며 파일 인 경우 나열됩니다. 이러한 방식으로 디렉토리의 파일과 폴더가 통과되고 모든 폴더가 잉크 레드리스트에서 L에 저장됩니다. 따라서 남은 것은 LinkedList의 파일을 가로 지르는 것입니다. 트래버스 방법은 위의 작업과 동일합니다. 폴더 인 경우 LinkedList에 추가됩니다 (PS : Traversal 프로세스 중 링크 사전 목록은 항상 동일한 목록입니다). 물론 각 폴더가 목록에서 꺼지면 폴더를 목록에서 삭제해야합니다. 다음은 LINKEDLIST.REMOVEFIRST ()를 읽을 수 있으므로 목록의 첫 번째 요소를 읽고 목록에서 제거합니다. 이런 식으로, 링크드리스트 상태로 가로 지르는 한, 이는 트래버스가 완료되었음을 의미합니다.
// 비 수수성 트래버스 void void getDirectorySize (파일 파일) {linkedList list = new LinkedList (); // 트래버 트로 폴더 목록을 저장 getOnedir (파일, 목록); // 루트 디렉토리 파일 파일 tmp를 통과하는 메소드를 호출합니다. (! list.isempty ()) {tmp = (file) list.removefirst (); //이 장소의 판단은 약간 중복되지만 보험을 위해서는 여전히 판단입니다. 일반적으로 목록에는 폴더 만 있지만 특별한 경우는 배제되지 않습니다. 예를 들어 폴더 자체의 대상은 (tmp.isdirectory ()) {getonedirsize (tmp, list);} else {system.out.println ( "file ==>" +. tmp.getabsolutepath ());}}}} // 지정된 폴더의 루트 디렉토리에서 파일을 가로 지르십시오. private void getonedir (파일 파일, linkedlist list) {//이 방법은 각 폴더 트래버스 시스템에 대해 호출됩니다. file.listfiles (); sumdir += 1; if (files == null || files.length == 0) {return;} for (file f : files) {if (f.isdirectory ()) {list.add (f);} else {// 현재 folder system.out.println (pile => " +를 나열합니다. f.getabsolutepath ());}}}2. Java를 사용하여 폴더를 가로 지르고 모든 내용을 얻습니다.
패키지 demo0823; import java.io.file; import java.util.arraylist; public class filetest {private static arraylist <string> filleList = new ArrayList <string> (); public static void main (strings [] args) {String filepath = "g : // icon (getfiles); filepath) {file root = new File (FilePath); file [] files = root.listfiles (); for (파일 : 파일) {if (file.isdirectory ()) {// 파일이 디렉토리 인 경우 바닥 캐비닛을 재귀 적으로 호출하십시오. getfiles (file.getabsolutepath ()); filleList.add (file.getAbsolutepath ()); System.out.println ( "+filepath+" "+file.getAbsolutepath ()에있는 모든 하위 디렉터 및 해당 파일 표시 (); "+filepath+" "+file.getabsolutepath ());}}} 아래생식 이미지 :
요약
위는 Java Background 폴더에서 파일을 가로 지르는 것에 대한이 기사의 전체 코드입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!