{"id":2585,"date":"2013-12-31T11:51:39","date_gmt":"2013-12-31T09:51:39","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2585"},"modified":"2013-12-31T11:51:39","modified_gmt":"2013-12-31T09:51:39","slug":"rekursiv-nach-dateienordnern-suchen-mit-files-find","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/12\/rekursiv-nach-dateienordnern-suchen-mit-files-find\/","title":{"rendered":"Rekursiv nach Dateien\/Ordnern suchen mit Files.find(&hellip;)"},"content":{"rendered":"<p>Neu in Java 8 ist die Methode find(\u2026) in Files um Dateien nach gewissen Kriterien zu finden. <\/p>\n<p>final class java.nio.file.Files <\/p>\n<ul>\n<li>static Stream&lt;Path&gt; find(Path start, int maxDepth, BiPredicate&lt;Path,BasicFileAttributes&gt; matcher, FileVisitOption&#8230; options) throws IOException<br \/>Sucht einen Verzeichnisbaum rekursiv ab und wendet auf jede Path den Filter (Pr\u00e4dikat) an. Falls der Filter zusagt, kommt der Path in den Ergebnis-Stream.<\/li>\n<\/ul>\n<\/p>\n<p>Beispiel und Hinweis: Finde alle Ordner unter dem Standard-Windows Bilder-Verzeichnis und gib sie aus: <\/p>\n<p>Files.find( Paths.get( System.getProperty( &#8222;user.home&#8220; ) ) <\/p>\n<p>.resolve( &#8222;Pictures&#8220; ), <\/p>\n<p>Integer.MAX_VALUE, <\/p>\n<p>(p,attr) -&gt; Files.isReadable( p ) &amp;&amp; attr.isDirectory() <\/p>\n<p>).forEach( System.out::println ); <\/p>\n<p>Intern greift find(\u2026) auf den gleichen Mechanismus wie walk(\u2026) zur\u00fcck, doch ist eine Eigenimplementierung mit Hilfe von walk(\u2026) mitunter besser, da wir beim visitFileFailed(\u2026) Fehler ignorieren k\u00f6nnen \u2013 bei find(\u2026) f\u00fchren Fehler direkt zum Abbruch. Bei Windows f\u00fchrt eine rekursive Suche schnell zu einem java.nio.file.AccessDeniedException durch einen Ordner, bei dem Java nicht dran darf und dann ist mit find(\u2026) sofort Schluss.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neu in Java 8 ist die Methode find(\u2026) in Files um Dateien nach gewissen Kriterien zu finden. final class java.nio.file.Files static Stream&lt;Path&gt; find(Path start, int maxDepth, BiPredicate&lt;Path,BasicFileAttributes&gt; matcher, FileVisitOption&#8230; options) throws IOExceptionSucht einen Verzeichnisbaum rekursiv ab und wendet auf jede Path den Filter (Pr\u00e4dikat) an. Falls der Filter zusagt, kommt der Path in den Ergebnis-Stream. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11,66],"tags":[],"class_list":["post-2585","post","type-post","status-publish","format-standard","hentry","category-insel","category-java-8"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=2585"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2585\/revisions"}],"predecessor-version":[{"id":2586,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2585\/revisions\/2586"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}