fix normalize

This commit is contained in:
Looly 2021-05-28 15:49:03 +08:00
parent 4ab60ad7b8
commit e3810b3727
3 changed files with 11 additions and 5 deletions

View File

@ -3,11 +3,12 @@
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------
# 5.6.7 (2021-05-27) # 5.6.7 (2021-05-28)
### 🐣新特性 ### 🐣新特性
### 🐞Bug修复 ### 🐞Bug修复
* 【core 】 修复FileUtil.normalize去掉末尾空格问题issue#1603@Github
------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------

View File

@ -1415,7 +1415,6 @@ public class FileUtil extends PathUtil {
return null; return null;
} }
// 兼容Spring风格的ClassPath路径去除前缀不区分大小写 // 兼容Spring风格的ClassPath路径去除前缀不区分大小写
String pathToUse = StrUtil.removePrefixIgnoreCase(path, URLUtil.CLASSPATH_URL_PREFIX); String pathToUse = StrUtil.removePrefixIgnoreCase(path, URLUtil.CLASSPATH_URL_PREFIX);
// 去除file:前缀 // 去除file:前缀
@ -1427,13 +1426,15 @@ public class FileUtil extends PathUtil {
} }
// 统一使用斜杠 // 统一使用斜杠
pathToUse = pathToUse.replaceAll("[/\\\\]+", StrUtil.SLASH).trim(); pathToUse = pathToUse.replaceAll("[/\\\\]+", StrUtil.SLASH);
// 去除开头空白符末尾空白符合法不去除
pathToUse = StrUtil.trimStart(pathToUse);
//兼容Windows下的共享目录路径原始路径如果以\\开头则保留这种路径 //兼容Windows下的共享目录路径原始路径如果以\\开头则保留这种路径
if (path.startsWith("\\\\")) { if (path.startsWith("\\\\")) {
pathToUse = "\\" + pathToUse; pathToUse = "\\" + pathToUse;
} }
String prefix = ""; String prefix = StrUtil.EMPTY;
int prefixIndex = pathToUse.indexOf(StrUtil.COLON); int prefixIndex = pathToUse.indexOf(StrUtil.COLON);
if (prefixIndex > -1) { if (prefixIndex > -1) {
// 可能Windows风格路径 // 可能Windows风格路径

View File

@ -158,10 +158,14 @@ public class FileUtilTest {
Assert.assertEquals("bar", FileUtil.normalize("../../bar")); Assert.assertEquals("bar", FileUtil.normalize("../../bar"));
Assert.assertEquals("C:/bar", FileUtil.normalize("/C:/bar")); Assert.assertEquals("C:/bar", FileUtil.normalize("/C:/bar"));
Assert.assertEquals("C:", FileUtil.normalize("C:")); Assert.assertEquals("C:", FileUtil.normalize("C:"));
Assert.assertEquals("\\/192.168.1.1/Share/", FileUtil.normalize("\\\\192.168.1.1\\Share\\")); Assert.assertEquals("\\/192.168.1.1/Share/", FileUtil.normalize("\\\\192.168.1.1\\Share\\"));
} }
@Test
public void normalizeBlankTest() {
Assert.assertEquals("C:/aaa ", FileUtil.normalize("C:\\aaa "));
}
@Test @Test
public void normalizeHomePathTest() { public void normalizeHomePathTest() {
String home = FileUtil.getUserHomePath().replace('\\', '/'); String home = FileUtil.getUserHomePath().replace('\\', '/');