¿­·¢k8¹ú¼Ê

JavaÁгöĿ¼ÄÚÈݼ«¿Í½Ì³ÌÇáËÉÕÆÎÕĿ¼ä¯ÀÀ¼¼ÇÉ
ȪԴ£ºÖ¤È¯Ê±±¨Íø×÷Õߣº³Â´ºÓê2025-08-15 08:12:22
gzuijkfdbwekfnrioewghrifwkasnfksrlbnehgagetuiwegbrkfjsbdgukbweaourt

ÔÚÒ»Ñùƽ³£µÄJava¿ª·¢ÖУ¬ÎļþºÍĿ¼µÄ²Ù×÷ÏÕЩÊDz»¿É×èÖ¹µÄʹÃü  ¡£ÎÞÂÛÊǶÁÈ¡ÉèÖÃÎļþ¡¢É¨ÃèÎļþ¼Ð£¬ÕÕ¾ÉʵÏÖÎļþÖÎÀíϵͳ£¬ÁбíÏÔʾĿ¼ÄÚÈݶ¼ÊÇ»ù´¡¶øÓÖ½¹µãµÄÊÖÒÕ  ¡£¿ÉÊÇ£¬JavaÖÐÔõÑùÓÅÑÅ¡¢¸ßЧµØÁгöij¸öĿ¼ÏÂËùÓÐÎļþºÍ×ÓĿ¼£¿Õâ¸öÎÊÌâ¿´ËÆ¼òÆÓ£¬È´²ØÓÐһЩϸ½ÚºÍ¼¼ÇÉ  ¡£

Java±ê×¼¿âÌṩµÄ¹¤¾ßÀàÖ÷Òª¼¯ÖÐÔÚjava.ioºÍjava.nio.file°üÏ  ¡£¹ØÓÚ³õѧÕߣ¬ÏàʶÁ½ÕßµÄÇø±ðÊÇÒªº¦  ¡£

java.io.FileÀ࣬ÊÇÔçÆÚJava°æ±¾ÖÐ×î³£ÓõÄÎļþºÍĿ¼²Ù×÷Àà  ¡£ËüÌṩÁËlist()ºÍlistFiles()Á½¸öÒªÁ죬ÓÃÀ´ÁгöĿ¼ÖеÄÄÚÈÝ  ¡£list()·µ»ØÎļþÃûµÄ×Ö·û´®Êý×飬¶ølistFiles()·µ»ØFile¹¤¾ßÊý×é  ¡£ÕâÁ½ÕßµÄÑ¡ÔñÈ¡¾öÓÚÄãºóÐøÒª×öµÄ²Ù×÷  ¡£

ʾÀý£ºÊ¹ÓÃFile¹¤¾ßÁгöĿ¼

Filedirectory=newFile("ÄãµÄĿ¼·¾¶");if(directory.isDirectory()){String[]fileNames=directory.list();if(fileNames!=null){for(Stringname:fileNames){System.out.println(name);}}}

Õâ¸ö¼òÆÓµÄÀý×Ó¿ÉÒÔÁгöĿ¼ÏÂËùÓÐÎļþºÍ×ÓĿ¼µÄÃû×Ö  ¡£

²»¹ý£¬java.io.FileÀàµÄÈõµãÔÚÓÚËüµÄ²Ù×÷½ÏΪµ×²ã£¬Ã»ÓкÜÊǸ»ºñµÄ¹ýÂ˺ÍËÑË÷¹¦Ð§  ¡£Java7ÒýÈëµÄjava.nio.file°üÌáÉýÁËÎļþ²Ù×÷µÄÄÜÁ¦£¬ÆäÖÐ×îÖ÷ÒªµÄÀàÊÇPathºÍFiles  ¡£

ʹÓÃjava.nio.fileµÄÒªÁì¿ÉÒÔÓÃDirectoryStreamʵÏÖĿ¼µÄ±éÀú£¬ÓÅÊÆÔÚÓÚ¿ÉÒÔÀû±ãµØ¾ÙÐйýÂ˺͵ݹé²Ù×÷  ¡£

ʾÀý£ºÊ¹ÓÃDirectoryStreamÁгöĿ¼ÄÚÈÝ

PathdirPath=Paths.get("ÄãµÄĿ¼·¾¶");try(DirectoryStreamstream=Files.newDirectoryStream(dirPath)){for(Pathentry:stream){System.out.println(entry.getFileName());}}catch(IOExceptione){e.printStackTrace();}

Õâ¶Î´úÂë±ÈFileÀà¸üǿʢ£¬Ö§³Ö¹ýÂËÆ÷£¬¿ÉÒÔÖ»ÁгöÌØ¶¨ÀàÐ͵ÄÎļþ  ¡£

Java8ÒýÈëÁËStreamAPI£¬Ò²¼«´óÔöÇ¿ÁËÎļþ´¦Öóͷ£µÄ±ã½ÝÐÔ  ¡£Äã¿ÉÒÔÓÃFiles.list()ÒªÁì¿ìËÙ»ñÈ¡Á÷¹¤¾ß£¬È»ºóÁ¬ÏµLambda±í´ïʽ£¬ÊµÏÖ¸üÖØ´óµÄĿ¼¹ýÂ˺ʹ¦Öóͷ£  ¡£

ʾÀý£ºJava8Á÷ʽĿ¼Áгö

try(Streampaths=Files.list(Paths.get("ÄãµÄĿ¼·¾¶"))){paths.forEach(path->System.out.println(path.getFileName()));}catch(IOExceptione){e.printStackTrace();}

ÕâʹµÃĿ¼²Ù×÷±äµÃÇåÎúÇÒ¸»Óбí´ïÁ¦  ¡£

µ«ÈôÊÇÄãÐèÒªµÝ¹éµØÁгö×ÓĿ¼ÄÚµÄËùÓÐÄÚÈÝ£¬¿ÉÄÜÐèҪдµÝ¹éÒªÁì»òʹÓÃFiles.walk()  ¡£

ʾÀý£ºµÝ¹éÁгöËùÓÐÎļþ

try(Streamwalk=Files.walk(Paths.get("ÄãµÄĿ¼·¾¶"))){walk.filter(Files::isRegularFile).forEach(path->System.out.println(path));}catch(IOExceptione){e.printStackTrace();}

Õâ¸öÒªÁì¿ÉÒÔ¿ìËÙ¾«²ÊµØÍê³ÉÉî¶È±éÀú  ¡£

×Ü½á£ºÕÆÎÕÕ⼸ÕУ¬Äã¾Í¿ÉÒÔÓÃJavaÇáËÉʵÏÖĿ¼ÄÚÈݵÄö¾Ù  ¡£Æä½¹µãÔÚÓÚÑ¡ÔñºÏÊʵÄÀàºÍÒªÁ죬Á¬ÏµJava8µÄÐÂÌØÕ÷£¬Ê¹´úÂë¸ü¾«Á·¡¢¹¦Ð§¸üǿʢ  ¡£

ÕÆÎÕÁË»ù±¾µÄĿ¼Áгö¼¼Çɺó£¬Ðí¶à¿ª·¢Õß×îÏȹØ×¢ÔõÑùÁ¬ÏµÏÖʵÐèÇóʵÏÖ¸üÖØ´óµÄĿ¼ÖÎÀí  ¡£ÀýÈ磬ɸѡÌض¨ÀàÐÍÎļþ¡¢µÝ¹éÉî¶È¿ØÖÆ¡¢ÊäÌØÊâʽÓÅ»¯ºÍÒì²½´¦Öóͷ££¬¶¼Êdz£¼ûµÄÏÖʵÎÊÌâ  ¡£

Ò»¡¢¹ýÂËÌØ¶¨ÎļþÀàÐÍ

ÏëÖ»ÁгöÌØ¶¨À©Õ¹ÃûµÄÎļþ£¬ºÃ±È.txt»ò.jpg£¬¿ÉÒÔʹÓùýÂËÆ÷²ÎÊý»òÕßÁ¬ÏµJavaµÄPredicate²Ù×÷  ¡£

ʹÓÃDirectoryStream.Filter¿ÉÒÔʵÏÖÓÐÓùýÂË£º

try(DirectoryStreamstream=Files.newDirectoryStream(dirPath,"*.txt")){for(Pathentry:stream){System.out.println(entry.getFileName());}}catch(IOExceptione){e.printStackTrace();}

ÈôÊÇÐèÒªÖØ´ó¹ýÂË£¬ºÃ±ÈÖ»ÏÔʾÐÞ¸Äʱ¼äÔçÓÚij¸öÈÕÆÚµÄÎļþ£¬½¨ÒéÁ¬ÏµFiles¶ÁÈ¡ÎļþÊôÐÔ  ¡£

ºÃ±È£º

Files.newDirectoryStream(dirPath,entry->{try{returnFiles.isRegularFile(entry)&&Files.getLastModifiedTime(entry).toMillis()

¶þ¡¢Éî¶ÈµÝ¹é±éÀúºÍÐÔÄÜÓÅ»¯

ÈôÊÇĿ¼²ã¼¶ºÜÉµÝ¹é±éÀú¿ÉÄܻᵼÖÂÐÔÄÜÎÊÌâ  ¡£´Ëʱ£¬¿ÉÒÔ˼Á¿Ê¹Ó÷ǵݹéµÄÐÐÁлòÕ»½á¹¹£¬ÊÖ¶¯¿ØÖƱéÀúÉî¶È  ¡£

ʾÀý£º·ÇµÝ¹éÉî¶ÈÏÞÖÆ±éÀú

publicvoidlistFilesWithDepth(Pathstart,intmaxDepth){Queuequeue=newLinkedList<>();queue.add(newPathDepthPair(start,0));while(!queue.isEmpty()){PathDepthPaircurrent=queue.poll();intcurrentDepth=current.depth;if(currentDepth>maxDepth)continue;try(DirectoryStreamstream=Files.newDirectoryStream(current.path)){for(Pathentry:stream){System.out.println(entry);if(Files.isDirectory(entry)){queue.add(newPathDepthPair(entry,currentDepth+1));}}}catch(IOExceptione){e.printStackTrace();}}}classPathDepthPair{Pathpath;intdepth;PathDepthPair(Pathpath,intdepth){this.path=path;this.depth=depth;}}

´Ë¼Æ»®×èÖ¹Á˵ݹ飬Ìá¸ßÁË¿ØÖÆÁ¦ºÍ¿Éά»¤ÐÔ  ¡£

Èý¡¢ÊäÌØÊâʽÓëUIչʾ

ÈôÊÇÄã²»Öª×ãÓÚÖ»ÔÚ¿ØÖÆÌ¨ÏÔʾ£¬»¹Ï£ÍûÓÐÆ¯ÁÁµÄ½çÃæ£¬»òµ¼³öΪJSON¡¢XMLÃûÌ㬿ÉÒÔʹÓõÚÈý·½¿â£¨ÈçJackson¡¢Gson£©¶ÔĿ¼½á¹¹¾ÙÐÐÐòÁл¯  ¡£

¾ÙÀý£ºÌìÉúĿ¼µÄJSONÊ÷½á¹¹

//µÝ¹é¹¹½¨Ä¿Â¼Ê÷publicclassFileNode{Stringname;booleanisDirectory;Listchildren=newArrayList<>();}//ÌìÉúÒªÁìpublicFileNodebuildTree(Pathpath){FileNodenode=newFileNode();node.name=path.getFileName().toString();node.isDirectory=Files.isDirectory(path);if(node.isDirectory){try(DirectoryStreamstream=Files.newDirectoryStream(path)){for(Pathchild:stream){node.children.add(buildTree(child));}}catch(IOExceptione){e.printStackTrace();}}returnnode;}//תΪJSONObjectMappermapper=newObjectMapper();StringjsonStr=mapper.writeValueAsString(buildTree(Paths.get("ÄãµÄĿ¼·¾¶")));System.out.println(jsonStr);

ÅäºÏǰ¶Ë»òÎļþÉúÑĹ¦Ð§£¬¿ÉÒÔÈÃÄãµÄĿ¼ä¯ÀÀ¹¤¾ß±äµÃ¸üΪרҵ  ¡£

ËÄ¡¢Òì²½ºÍ¶àÏ̴߳¦Öóͷ£

Ëæ×ÅĿ¼µÄÊý¾ÝÁ¿ÔöÌí£¬ÎªÁËÌáÉýЧÂÊ£¬¿ÉÒÔ˼Á¿Òì²½»ò¶àÏß³ÌɨÃè  ¡£ÀýÈ磬ʹÓÃExecutorService¿ªÆô¶àÏß³ÌʹÃü£¬¼ÓËÙ±éÀúËÙÂÊ  ¡£

ʾÀý£º¶àÏ̵߳ݹéÁгöĿ¼£¨ÐèÒª×¢ÖØÏß³ÌÇå¾²ºÍ×ÊÔ´ÖÎÀí£©

ExecutorServiceexecutor=Executors.newFixedThreadPool(4);publicvoidlistDirectoryAsync(Pathpath){executor.submit(()->{try(DirectoryStreamstream=Files.newDirectoryStream(path)){for(Pathentry:stream){System.out.println(entry);if(Files.isDirectory(entry)){listDirectoryAsync(entry);}}}catch(IOExceptione){e.printStackTrace();}});}

È·±£ÔÚŲÓÃÍê±ÏºóŲÓÃexecutor.shutdown()ÒԹرÕÏß³Ì³Ø  ¡£

×ßµÃÔÙÔ¶£¬¹é¸ù½áµ×£¬JavaµÄÎļþĿ¼²Ù×÷ÄÜÁ¦Ç¿Ê¢¶ø¸»ºñ  ¡£Ö»ÒªÄãÕÆÎÕÁ˺ÏÊʵŤ¾ßºÍ¼¼ÇÉ£¬¾ÍÄÜÔÚÏîÄ¿ÖÐÇáËÉÓ¦¶ÔÖÖÖÖ³¡¾°¡ª¡ª´Ó¼òÆÓµÄÎļþÁÐ±íµ½ÖØ´óµÄĿ¼½á¹¹ÖÎÀí£¬¼«¿Í½Ì³ÌÒ»Ö±¶¼ÔÚÒýÁìÄãÏòǰ  ¡£

ÈôÊÇÄãÈȰ®ÊÖÒÕ£¬Ï²»¶ÉîÈëÍÚ¾òJavaµÄÐþÃ¼á³ÖѧϰµÄÈÈÇ飬ÈÃÿһ´ÎĿ¼±éÀú¶¼³ÉΪÄãÊÖÒÕÉú³¤µÄõè¾¶  ¡£Õâ²»µ«ÊÇÊÖÒյĻýÀÛ£¬¸üÊÇÍ·ÄÔµÄÄ¥Á¶  ¡£Î´À´µÄÄ㣬һ¶¨»áлл½ñÌìһֱ̽Ë÷µÄ×Ô¼º  ¡£

ÐÂÒ»ÂÖ¡°µØÍõ³±¡±À´ÁË£¿
ÔðÈα༭£º ³Âཨ
ÉùÃ÷£ºÖ¤È¯Ê±±¨Á¦ÕùÐÅÏ¢ÕæÊµ¡¢×¼È·£¬ÎÄÕÂÌá¼°ÄÚÈݽö¹©²Î¿¼£¬²»×é³ÉʵÖÊÐÔͶ×ʽ¨Ò飬¾Ý´Ë²Ù×÷Σº¦×Ôµ£
ÏÂÔØ¡°Ö¤È¯Ê±±¨¡±¹Ù·½APP£¬»ò¹Ø×¢¹Ù·½Î¢ÐŹ«Öںţ¬¼´¿ÉËæÊ±Ïàʶ¹ÉÊж¯Ì¬£¬¶´²ìÕþ²ßÐÅÏ¢£¬ÕÆÎղƲúʱ»ú  ¡£
ÍøÓÑ̸ÂÛ
µÇ¼ºó¿ÉÒÔ½²»°
·¢ËÍ
ÍøÓÑ̸ÂÛ½ö¹©Æä±í´ïСÎÒ˽¼Ò¿´·¨£¬²¢²»Åúע֤ȯʱ±¨Ì¬¶È
ÔÝÎÞ̸ÂÛ
ΪÄãÍÆ¼ö
»ù´¡½¨ÉèÒµCFOȺÌåÊӲ죺6λCFOÒòÎ¥¹æÊÜ·£ ¶«·½Ô°ÁÖÀîÔÚÔ¨±»¼ÇÈë³ÏÐŵµ°¸
//1
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿