This commit is contained in:
Looly 2023-06-16 23:54:06 +08:00
parent 0760e44c12
commit 13aff5c734
3 changed files with 33 additions and 11 deletions

View File

@ -23,6 +23,7 @@ import org.dromara.hutool.core.io.resource.ResourceUtil;
import org.dromara.hutool.core.io.stream.BOMInputStream;
import org.dromara.hutool.core.io.unit.DataSizeUtil;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Console;
import org.dromara.hutool.core.net.url.URLUtil;
import org.dromara.hutool.core.reflect.ClassUtil;
import org.dromara.hutool.core.regex.ReUtil;
@ -2558,6 +2559,7 @@ public class FileUtil extends PathUtil {
*/
public static File getWebRoot() {
final String classPath = ClassUtil.getClassPath();
Console.log(classPath);
if (StrUtil.isNotBlank(classPath)) {
return getParent(file(classPath), 2);
}

View File

@ -4,6 +4,8 @@ import org.dromara.hutool.core.io.resource.ClassPathResource;
import org.dromara.hutool.core.text.StrUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
import java.io.IOException;
import java.util.Properties;
@ -22,14 +24,26 @@ public class ClassPathResourceTest {
Assertions.assertTrue(StrUtil.isNotEmpty(content));
}
@Test
@Test()
@EnabledForJreRange(max = JRE.JAVA_8)
public void readStringTest2() {
// JDK9+中因为模块的加入根路径读取可能为空
// 读取classpath根目录测试
final ClassPathResource resource = new ClassPathResource("/");
final String content = resource.readUtf8Str();
Assertions.assertTrue(StrUtil.isNotEmpty(content));
}
@Test()
@EnabledForJreRange(min = JRE.JAVA_9)
public void readStringTestForJdk9() {
// JDK9+中因为模块的加入根路径读取可能为空
// 读取classpath根目录测试
final ClassPathResource resource = new ClassPathResource("/");
final String content = resource.readUtf8Str();
Assertions.assertTrue(StrUtil.isEmpty(content));
}
@Test
public void readTest() throws IOException {
final ClassPathResource resource = new ClassPathResource("test.properties");

View File

@ -19,6 +19,8 @@ import org.dromara.hutool.core.util.SystemUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
import java.io.File;
import java.nio.file.Path;
@ -40,7 +42,7 @@ public class FileUtilTest {
@Test
public void fileTest2() {
Assertions.assertThrows(IllegalArgumentException.class, ()->{
Assertions.assertThrows(IllegalArgumentException.class, () -> {
// 构建目录中出现非子目录抛出异常
FileUtil.file("d:/aaa/bbb", "../ccc");
});
@ -82,7 +84,7 @@ public class FileUtilTest {
@Test
@Disabled
public void renameToSubTest() {
Assertions.assertThrows(IllegalArgumentException.class, ()->{
Assertions.assertThrows(IllegalArgumentException.class, () -> {
// 移动到子目录报错
FileUtil.move(FileUtil.file("d:/test/a"), FileUtil.file("d:/test/a/c"), false);
});
@ -250,7 +252,9 @@ public class FileUtilTest {
}
@Test
@EnabledForJreRange(max = JRE.JAVA_8)
public void listFileNamesTest() {
// JDK9+由于模块化问题获取的classoath路径非项目下而是junit下的
List<String> names = FileUtil.listFileNames("classpath:");
Assertions.assertTrue(names.contains("hutool.jpg"));
@ -366,11 +370,11 @@ public class FileUtilTest {
@Test
public void extNameTest() {
String path = FileUtil.isWindows() ? "d:\\aaa\\bbb\\cc\\ddd\\" : "~/Desktop/hutool/ddd/";
String path = FileUtil.isWindows() ? "d:\\aaa\\bbb\\cc\\ddd\\" : "~/Desktop/hutool/ddd/";
String mainName = FileNameUtil.extName(path);
Assertions.assertEquals("", mainName);
path = FileUtil.isWindows() ? "d:\\aaa\\bbb\\cc\\ddd" : "~/Desktop/hutool/ddd";
path = FileUtil.isWindows() ? "d:\\aaa\\bbb\\cc\\ddd" : "~/Desktop/hutool/ddd";
mainName = FileNameUtil.extName(path);
Assertions.assertEquals("", mainName);
@ -400,7 +404,9 @@ public class FileUtilTest {
}
@Test
@EnabledForJreRange(max = JRE.JAVA_8)
public void getWebRootTest() {
// JDK9+环境中由于模块问题junit获取的classpath路径和实际不同
final File webRoot = FileUtil.getWebRoot();
Assertions.assertNotNull(webRoot);
Assertions.assertEquals("hutool-core", webRoot.getName());
@ -463,20 +469,20 @@ public class FileUtilTest {
@Test
@Disabled
public void appendLinesTest(){
public void appendLinesTest() {
final List<String> list = ListUtil.of("a", "b", "c");
FileUtil.appendLines(list, FileUtil.file("d:/test/appendLines.txt"), CharsetUtil.UTF_8);
}
@Test
public void createTempFileTest(){
public void createTempFileTest() {
final File nullDirTempFile = FileUtil.createTempFile();
Assertions.assertTrue(nullDirTempFile.exists());
final File suffixDirTempFile = FileUtil.createTempFile(".xlsx",true);
final File suffixDirTempFile = FileUtil.createTempFile(".xlsx", true);
Assertions.assertEquals("xlsx", FileNameUtil.getSuffix(suffixDirTempFile));
final File prefixDirTempFile = FileUtil.createTempFile("prefix",".xlsx",true);
final File prefixDirTempFile = FileUtil.createTempFile("prefix", ".xlsx", true);
Console.log(prefixDirTempFile);
Assertions.assertTrue(FileNameUtil.getPrefix(prefixDirTempFile).startsWith("prefix"));
}
@ -490,7 +496,7 @@ public class FileUtilTest {
}
@Test
public void isAbsolutePathTest(){
public void isAbsolutePathTest() {
String path = "d:/test\\aaa.txt";
Assertions.assertTrue(FileUtil.isAbsolutePath(path));
@ -506,7 +512,7 @@ public class FileUtilTest {
@Test
void checkSlipTest() {
Assertions.assertThrows(IllegalArgumentException.class, ()->{
Assertions.assertThrows(IllegalArgumentException.class, () -> {
FileUtil.checkSlip(FileUtil.file("test/a"), FileUtil.file("test/../a"));
});
}