From 0285646a41260ceedf74b36943967842b374d80c Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Sun, 18 Jan 2026 22:00:32 +0530 Subject: [PATCH 1/2] IO-771: Fix trailing separator in getFullPathNoEndSeparator --- src/main/java/org/apache/commons/io/FilenameUtils.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/io/FilenameUtils.java b/src/main/java/org/apache/commons/io/FilenameUtils.java index c3a2a2dcfa5..47a2350bb38 100644 --- a/src/main/java/org/apache/commons/io/FilenameUtils.java +++ b/src/main/java/org/apache/commons/io/FilenameUtils.java @@ -326,7 +326,14 @@ private static String doGetFullPath(final String fileName, final boolean include if (end == 0) { end++; } - return fileName.substring(0, end); + final String path = fileName.substring(0, end); + if(!includeEndSeparator && path.length() > prefix) { + final char lastChar = path.charAt(path.length() -1); + if(lastChar == '/' || lastChar == '\\') { + return path.substring(0, path.length() -1); + } + } + return path; } /** From c59f9a20c00a290cd55ec9b5298e8a29859fec67 Mon Sep 17 00:00:00 2001 From: Aaditya Srinivasan Date: Sun, 18 Jan 2026 22:44:55 +0530 Subject: [PATCH 2/2] [IO-771] Fix trailing separator in FilenameUtils.getFullPathNoEndSeparator --- src/main/java/org/apache/commons/io/FilenameUtils.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/commons/io/FilenameUtils.java b/src/main/java/org/apache/commons/io/FilenameUtils.java index 47a2350bb38..bd1c13168ab 100644 --- a/src/main/java/org/apache/commons/io/FilenameUtils.java +++ b/src/main/java/org/apache/commons/io/FilenameUtils.java @@ -327,10 +327,10 @@ private static String doGetFullPath(final String fileName, final boolean include end++; } final String path = fileName.substring(0, end); - if(!includeEndSeparator && path.length() > prefix) { - final char lastChar = path.charAt(path.length() -1); - if(lastChar == '/' || lastChar == '\\') { - return path.substring(0, path.length() -1); + if (!includeEndSeparator && path.length() > prefix) { + final char lastChar = path.charAt(path.length() - 1); + if (lastChar == '/' || lastChar == '\\') { + return path.substring(0, path.length() - 1); } } return path;