From c6db496a1fce8d840b521873361d2de3d5f59209 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sat, 22 May 2021 01:57:04 -0300 Subject: [PATCH] fixes behaviour of folder and file detections in java 16, fixes #869 --- src/main/java/carpet/script/argument/FileArgument.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/carpet/script/argument/FileArgument.java b/src/main/java/carpet/script/argument/FileArgument.java index beaa0279..d4fb6152 100644 --- a/src/main/java/carpet/script/argument/FileArgument.java +++ b/src/main/java/carpet/script/argument/FileArgument.java @@ -222,7 +222,10 @@ public class FileArgument String ext = type.extension; try { - return Files.list(dir).filter(path -> (type==Type.FOLDER)?path.toString().endsWith("/"):path.toString().endsWith(ext)); + return Files.list(dir).filter(path -> (type==Type.FOLDER) + ?Files.isDirectory(path) + :(Files.isRegularFile(path) && path.toString().endsWith(ext)) + ); } catch (IOException ignored) { @@ -252,6 +255,7 @@ public class FileArgument close(); } if (type == Type.FOLDER) + // java 8 paths are inconsistent. in java 16 they all should not have trailing slashes return strings.map(s -> s.endsWith("/")?s.substring(0, s.length()-1):s); return strings.map(FilenameUtils::removeExtension); }