This commit is contained in:
Looly 2023-06-16 19:19:11 +08:00
parent ea713a13d0
commit d89d3b8716
7 changed files with 45 additions and 31 deletions

View File

@ -10,7 +10,7 @@
* See the Mulan PSL v2 for more details.
*/
package org.dromara.hutool.core.util;
package org.dromara.hutool.core.io;
import org.dromara.hutool.core.io.IORuntimeException;
import org.dromara.hutool.core.io.resource.ResourceUtil;

View File

@ -23,7 +23,6 @@ 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;
@ -2648,25 +2647,14 @@ public class FileUtil extends PathUtil {
*/
public static File checkSlip(final File parentFile, final File file) throws IllegalArgumentException {
if (null != parentFile && null != file) {
if (!startsWith(parentFile, file)) {
throw new IllegalArgumentException("New file is outside of the parent dir: " + file.getName());
if (!isSub(parentFile, file)) {
throw new IllegalArgumentException(StrUtil.format(
"New file [{}] is outside of the parent dir: [{}]", file, parentFile));
}
}
return file;
}
/**
* 检查父文件是否为文件真正的父目录
*
* @param parentFile 父目录
* @param file 文件
* @return 是否为文件真正的父目录
*/
public static boolean startsWith(final File parentFile, final File file) {
return PathUtil.toAbsNormal(parentFile.toPath())
.startsWith(PathUtil.toAbsNormal(file.toPath()));
}
/**
* 根据文件扩展名获得MimeType
*
@ -2727,8 +2715,8 @@ public class FileUtil extends PathUtil {
/**
* 判断给定的目录是否为给定文件或文件夹的子目录
*
* @param parent 父目录
* @param sub 子目录
* @param parent 父目录非空
* @param sub 子目录非空
* @return 子目录是否为父目录的子目录
* @since 4.5.4
*/

View File

@ -14,7 +14,6 @@ package org.dromara.hutool.core.io.file;
import org.dromara.hutool.core.io.IORuntimeException;
import org.dromara.hutool.core.io.IoUtil;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.util.CharsetUtil;
import java.io.*;

View File

@ -1,6 +1,5 @@
package org.dromara.hutool.core.io;
import org.dromara.hutool.core.util.ManifestUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

View File

@ -1,8 +1,18 @@
package org.dromara.hutool.core.io;
/*
* Copyright (c) 2023 looly(loolly@aliyun.com)
* Hutool is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
package org.dromara.hutool.core.io.file;
import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.io.file.FileReader;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

View File

@ -1,7 +1,17 @@
package org.dromara.hutool.core.io;
/*
* Copyright (c) 2023 looly(loolly@aliyun.com)
* Hutool is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
package org.dromara.hutool.core.io.file;
import org.dromara.hutool.core.io.file.FileTypeUtil;
import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.io.resource.ResourceUtil;
import org.dromara.hutool.core.lang.Console;
import org.junit.jupiter.api.Assertions;

View File

@ -1,9 +1,18 @@
package org.dromara.hutool.core.io;
/*
* Copyright (c) 2023 looly(loolly@aliyun.com)
* Hutool is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
package org.dromara.hutool.core.io.file;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.io.file.LineSeparator;
import org.dromara.hutool.core.lang.Console;
import org.dromara.hutool.core.util.CharsetUtil;
import org.dromara.hutool.core.util.SystemUtil;
@ -460,7 +469,6 @@ public class FileUtilTest {
}
@Test
//@Disabled
public void createTempFileTest(){
final File nullDirTempFile = FileUtil.createTempFile();
Assertions.assertTrue(nullDirTempFile.exists());