mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-03 20:27:58 +08:00
normalize support samba path
This commit is contained in:
parent
a8e9de0ffb
commit
30d26ab22d
@ -11,6 +11,7 @@
|
||||
* 【core】 TimeInterval增加intervalPretty方法(issue#I12A6T@Gitee)
|
||||
* 【core】 改进ArrayUtil.toString,提高性能
|
||||
* 【system】 增加SystemPropsKeys(issue#550@Github)
|
||||
* 【core】 FileUtil.normalize在win下支持samba路径(issue#549@Github)
|
||||
|
||||
### Bug修复
|
||||
* 【core】 修复DateUtil.offset导致的时区错误问题(issue#I1294O@Gitee)
|
||||
@ -18,6 +19,7 @@
|
||||
* 【db】 修复StatementUtil.getGeneratedKeys返回主键数量不足问题
|
||||
* 【db】 修复锁的问题(issue#546@Github)
|
||||
* 【db】 修复CombinationAnnotationElement问题(issue#547@Github)
|
||||
* 【core】 修复Validator.isGeneral问题
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -48,6 +48,7 @@ import cn.hutool.core.io.file.LineSeparator;
|
||||
import cn.hutool.core.io.file.Tailer;
|
||||
import cn.hutool.core.io.resource.ResourceUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.CharUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
@ -1576,15 +1577,20 @@ public class FileUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// 兼容Spring风格的ClassPath路径,去除前缀,不区分大小写
|
||||
String pathToUse = StrUtil.removePrefixIgnoreCase(path, URLUtil.CLASSPATH_URL_PREFIX);
|
||||
// 去除file:前缀
|
||||
pathToUse = StrUtil.removePrefixIgnoreCase(pathToUse, URLUtil.FILE_URL_PREFIX);
|
||||
// 统一使用斜杠
|
||||
pathToUse = pathToUse.replaceAll("[/\\\\]{1,}", StrUtil.SLASH).trim();
|
||||
//兼容Windows下的共享目录路径(原始路径如果以\\开头,则保留这种路径)
|
||||
if(path.startsWith("\\\\")){
|
||||
pathToUse = "\\" + pathToUse;
|
||||
}
|
||||
|
||||
int prefixIndex = pathToUse.indexOf(StrUtil.COLON);
|
||||
String prefix = "";
|
||||
int prefixIndex = pathToUse.indexOf(StrUtil.COLON);
|
||||
if (prefixIndex > -1) {
|
||||
// 可能Windows风格路径
|
||||
prefix = pathToUse.substring(0, prefixIndex + 1);
|
||||
|
@ -371,10 +371,10 @@ public class Validator {
|
||||
* @return 是否为给定长度范围的英文字母 、数字和下划线
|
||||
*/
|
||||
public static boolean isGeneral(CharSequence value, int min, int max) {
|
||||
String reg = "^\\w{" + min + "," + max + "}$";
|
||||
if (min < 0) {
|
||||
min = 0;
|
||||
}
|
||||
String reg = "^\\w{" + min + "," + max + "}$";
|
||||
if (max <= 0) {
|
||||
reg = "^\\w{" + min + ",}$";
|
||||
}
|
||||
|
@ -136,6 +136,8 @@ 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("\\/192.168.1.1/Share/", FileUtil.normalize("\\\\192.168.1.1\\Share\\"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -8,8 +8,8 @@ import cn.hutool.core.lang.Validator;
|
||||
|
||||
/**
|
||||
* 验证器单元测试
|
||||
* @author Looly
|
||||
*
|
||||
* @author Looly
|
||||
*/
|
||||
public class ValidatorTest {
|
||||
|
||||
@ -48,7 +48,7 @@ public class ValidatorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isBirthdayTest(){
|
||||
public void isBirthdayTest() {
|
||||
boolean b = Validator.isBirthday("20150101");
|
||||
Assert.assertTrue(b);
|
||||
boolean b2 = Validator.isBirthday("2015-01-01");
|
||||
@ -71,13 +71,13 @@ public class ValidatorTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isCitizenIdTest(){
|
||||
public void isCitizenIdTest() {
|
||||
boolean b = Validator.isCitizenId("150218199012123389");
|
||||
Assert.assertTrue(b);
|
||||
}
|
||||
|
||||
@Test(expected=ValidateException.class)
|
||||
public void validateTest() throws ValidateException{
|
||||
@Test(expected = ValidateException.class)
|
||||
public void validateTest() throws ValidateException {
|
||||
Validator.validateChinese("我是一段zhongwen", "内容中包含非中文");
|
||||
}
|
||||
|
||||
@ -116,4 +116,20 @@ public class ValidatorTest {
|
||||
url = "https://aaa-bbb.somthing.com:8080/a.php?a=b&c=2";
|
||||
Assert.assertTrue(Validator.isMactchRegex(PatternPool.URL_HTTP, url));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isGeneralTest() {
|
||||
String str = "";
|
||||
boolean general = Validator.isGeneral(str, -1, 5);
|
||||
Assert.assertTrue(general);
|
||||
|
||||
str = "123_abc_ccc";
|
||||
general = Validator.isGeneral(str, -1, 100);
|
||||
Assert.assertTrue(general);
|
||||
|
||||
// 不允许中文
|
||||
str = "123_abc_ccc中文";
|
||||
general = Validator.isGeneral(str, -1, 100);
|
||||
Assert.assertFalse(general);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user