From c485c5caf4ecf2a4a0de61c87f300f1dd46d4b4d Mon Sep 17 00:00:00 2001 From: ouyanglinxia Date: Wed, 28 Oct 2020 17:13:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=9A=84=E6=96=87=E4=BB=B6=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github/hcsp/polymorphism/FileFilter.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/hcsp/polymorphism/FileFilter.java b/src/main/java/com/github/hcsp/polymorphism/FileFilter.java index c0dfa2a..7d291a7 100644 --- a/src/main/java/com/github/hcsp/polymorphism/FileFilter.java +++ b/src/main/java/com/github/hcsp/polymorphism/FileFilter.java @@ -1,8 +1,10 @@ package com.github.hcsp.polymorphism; +import java.io.File; import java.io.IOException; -import java.nio.file.Path; -import java.nio.file.Paths; +import java.nio.file.*; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; import java.util.List; public class FileFilter { @@ -24,5 +26,18 @@ public static void main(String[] args) throws IOException { * @param extension 要过滤的文件扩展名,例如 .txt * @return 所有该文件夹(及其后代子文件夹中)匹配指定扩展名的文件的名字 */ - public static List filter(Path rootDirectory, String extension) throws IOException {} + public static List filter(Path rootDirectory, String extension) throws IOException { + List arr = new ArrayList<>(); + Files.walkFileTree(rootDirectory, new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + if(file.getFileName().toString().endsWith(extension)) { + arr.add(file.getFileName().toString()); + } + return FileVisitResult.CONTINUE; + } + }); + return arr; + } + } From 08fa0c72f627dc8b7d7ec6134ebb6137b29dd5be Mon Sep 17 00:00:00 2001 From: ouyanglinxia Date: Wed, 28 Oct 2020 17:16:48 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/github/hcsp/polymorphism/FileFilter.java | 10 +++++++--- .../com/github/hcsp/polymorphism/FileFilterTest.java | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/hcsp/polymorphism/FileFilter.java b/src/main/java/com/github/hcsp/polymorphism/FileFilter.java index 7d291a7..4dcd0e4 100644 --- a/src/main/java/com/github/hcsp/polymorphism/FileFilter.java +++ b/src/main/java/com/github/hcsp/polymorphism/FileFilter.java @@ -2,7 +2,11 @@ import java.io.File; import java.io.IOException; -import java.nio.file.*; +import java.nio.file.Files; +import java.nio.file.FileVisitResult; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.List; @@ -23,7 +27,7 @@ public static void main(String[] args) throws IOException { * 实现一个按照扩展名过滤文件的功能 * * @param rootDirectory 要过滤的文件夹 - * @param extension 要过滤的文件扩展名,例如 .txt + * @param extension 要过滤的文件扩展名,例如 .txt * @return 所有该文件夹(及其后代子文件夹中)匹配指定扩展名的文件的名字 */ public static List filter(Path rootDirectory, String extension) throws IOException { @@ -31,7 +35,7 @@ public static List filter(Path rootDirectory, String extension) throws I Files.walkFileTree(rootDirectory, new SimpleFileVisitor() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { - if(file.getFileName().toString().endsWith(extension)) { + if (file.getFileName().toString().endsWith(extension)) { arr.add(file.getFileName().toString()); } return FileVisitResult.CONTINUE; diff --git a/src/test/java/com/github/hcsp/polymorphism/FileFilterTest.java b/src/test/java/com/github/hcsp/polymorphism/FileFilterTest.java index 09b67c2..963177e 100644 --- a/src/test/java/com/github/hcsp/polymorphism/FileFilterTest.java +++ b/src/test/java/com/github/hcsp/polymorphism/FileFilterTest.java @@ -6,6 +6,7 @@ import java.util.Arrays; import java.util.HashSet; import java.util.Set; + import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; From 21d792dc784218029faba8e7fe92bcc700c93ed8 Mon Sep 17 00:00:00 2001 From: ouyanglinxia Date: Wed, 28 Oct 2020 17:20:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/github/hcsp/polymorphism/FileFilter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/github/hcsp/polymorphism/FileFilter.java b/src/main/java/com/github/hcsp/polymorphism/FileFilter.java index 4dcd0e4..8b8d75d 100644 --- a/src/main/java/com/github/hcsp/polymorphism/FileFilter.java +++ b/src/main/java/com/github/hcsp/polymorphism/FileFilter.java @@ -1,6 +1,5 @@ package com.github.hcsp.polymorphism; -import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.FileVisitResult;