diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ddda765f..3439b0de6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ * 【core 】 修复ReflectUtil.getMethods获取接口方法问题(issue#I4WUWR@Gitee) * 【core 】 修复NamingCase中大写转换问题(pr#572@Gitee) * 【http 】 修复GET重定向时,携带参数问题(issue#2189@Github) +* 【core 】 修复FileUtil、FileCopier相对路径获取父路径错误问题(pr#2188@Github) ------------------------------------------------------------------------------------------------------------- # 5.7.22 (2022-03-01) diff --git a/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java index e0622f7fc..8cd3356f4 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/FileUtil.java @@ -700,7 +700,7 @@ public class FileUtil extends PathUtil { if (null == file) { return null; } - return mkdir(file.getParentFile()); + return mkdir(getParent(file, 1)); } /** diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileCopier.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileCopier.java index 6f133f2e3..3e7df8220 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/file/FileCopier.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileCopier.java @@ -267,8 +267,7 @@ public class FileCopier extends SrcToDestCopier{ } }else { //路径不存在则创建父目录 - //noinspection ResultOfMethodCallIgnored - dest.getAbsoluteFile().getParentFile().mkdirs(); + FileUtil.mkParentDirs(dest); } final ArrayList optionList = new ArrayList<>(2); diff --git a/hutool-core/src/test/java/cn/hutool/core/io/FileCopierTest.java b/hutool-core/src/test/java/cn/hutool/core/io/FileCopierTest.java index 6cfaf3763..8419ca29d 100644 --- a/hutool-core/src/test/java/cn/hutool/core/io/FileCopierTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/FileCopierTest.java @@ -1,5 +1,6 @@ package cn.hutool.core.io; +import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -48,8 +49,11 @@ public class FileCopierTest { @Test @Ignore public void copyFileByRelativePath(){ + // https://github.com/dromara/hutool/pull/2188 // 当复制的目标文件位置是相对路径的时候可以通过 FileCopier copier = FileCopier.create(new File("pom.xml"),new File("aaa.txt")); copier.copy(); + final boolean delete = new File("aaa.txt").delete(); + Assert.assertTrue(delete); } }