This commit is contained in:
Looly 2021-07-14 18:26:26 +08:00
parent f96795c231
commit f68a73538e
2 changed files with 4 additions and 3 deletions

View File

@ -1479,7 +1479,8 @@ public class FileUtil extends PathUtil {
}
// issue#1703@Github
if(tops > 0){
if(tops > 0 && StrUtil.isEmpty(prefix)){
// 只有相对路径补充开头的..绝对路径直接忽略之
while (tops-- > 0){
//遍历完节点发现还有上级标注即开头有一个或多个..补充之
// Normal path element found.

View File

@ -147,7 +147,7 @@ public class FileUtilTest {
Assert.assertEquals("/bar", FileUtil.normalize("/foo/../bar"));
Assert.assertEquals("/bar/", FileUtil.normalize("/foo/../bar/"));
Assert.assertEquals("/baz", FileUtil.normalize("/foo/../bar/../baz"));
Assert.assertEquals("/../", FileUtil.normalize("/../"));
Assert.assertEquals("/", FileUtil.normalize("/../"));
Assert.assertEquals("foo", FileUtil.normalize("foo/bar/.."));
Assert.assertEquals("../bar", FileUtil.normalize("foo/../../bar"));
Assert.assertEquals("bar", FileUtil.normalize("foo/../bar"));
@ -155,7 +155,7 @@ public class FileUtilTest {
Assert.assertEquals("/bar", FileUtil.normalize("//server/../bar"));
Assert.assertEquals("C:/bar", FileUtil.normalize("C:\\foo\\..\\bar"));
//
Assert.assertEquals("C:/../bar", FileUtil.normalize("C:\\..\\bar"));
Assert.assertEquals("C:/bar", FileUtil.normalize("C:\\..\\bar"));
Assert.assertEquals("../../bar", FileUtil.normalize("../../bar"));
Assert.assertEquals("C:/bar", FileUtil.normalize("/C:/bar"));
Assert.assertEquals("C:", FileUtil.normalize("C:"));