From 1035723be7ca866faaa57c42d9527ec5758ed9c9 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 19 May 2023 21:51:55 +0800 Subject: [PATCH] =?UTF-8?q?FileTypeUtil.getType=E5=A2=9E=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/core/io/IORuntimeException.java | 10 ++++----- .../hutool/core/io/file/FileTypeUtil.java | 3 +++ .../dromara/hutool/core/io/file/PathUtil.java | 21 ++++++++++++++----- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/IORuntimeException.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/IORuntimeException.java index 1126d4c31..0e6e77a32 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/IORuntimeException.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/IORuntimeException.java @@ -12,14 +12,14 @@ package org.dromara.hutool.core.io; -import org.dromara.hutool.core.text.StrUtil; +import org.dromara.hutool.core.exception.HutoolException; /** * IO运行时异常,常用于对IOException的包装 * - * @author xiaoleilu + * @author looly */ -public class IORuntimeException extends RuntimeException { +public class IORuntimeException extends HutoolException { private static final long serialVersionUID = 8247610319171014183L; /** @@ -54,7 +54,7 @@ public class IORuntimeException extends RuntimeException { * @param params 参数 */ public IORuntimeException(final String messageTemplate, final Object... params) { - super(StrUtil.format(messageTemplate, params)); + super(messageTemplate, params); } /** @@ -87,7 +87,7 @@ public class IORuntimeException extends RuntimeException { * @param params 参数 */ public IORuntimeException(final Throwable cause, final String messageTemplate, final Object... params) { - super(StrUtil.format(messageTemplate, params), cause); + super(cause, messageTemplate, params); } /** diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileTypeUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileTypeUtil.java index 363baed8a..8c2641c0a 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileTypeUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/FileTypeUtil.java @@ -208,6 +208,9 @@ public class FileTypeUtil { * @throws IORuntimeException 读取文件引起的异常 */ public static String getType(final File file, final boolean isExact) throws IORuntimeException { + if(false == FileUtil.isFile(file)){ + throw new IllegalArgumentException("Not a regular file!"); + } InputStream in = null; try { in = IoUtil.toStream(file); diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/PathUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/PathUtil.java index eee1aeeb6..684307910 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/file/PathUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/file/PathUtil.java @@ -512,6 +512,17 @@ public class PathUtil { return Files.isSymbolicLink(path); } + /** + * 判断是否为其它类型文件,即非文件、非目录、非链接。 + * + * @param path 被检查的文件(非空) + * @return 是否为其它类型文件 + * @since 6.0.0 + */ + public static boolean isOther(final Path path) { + return getAttributes(path, false).isOther(); + } + /** * 判断文件或目录是否存在 * @@ -615,9 +626,9 @@ public class PathUtil { * 创建临时文件
* 创建后的文件名为 prefix[Random].suffix From com.jodd.io.FileUtil * - * @param prefix 前缀,至少3个字符 - * @param suffix 后缀,如果null则使用默认.tmp - * @param dir 临时文件创建的所在目录 + * @param prefix 前缀,至少3个字符 + * @param suffix 后缀,如果null则使用默认.tmp + * @param dir 临时文件创建的所在目录 * @return 临时文件 * @throws IORuntimeException IO异常 * @since 6.0.0 @@ -626,9 +637,9 @@ public class PathUtil { int exceptionsCount = 0; while (true) { try { - if(null == dir){ + if (null == dir) { return Files.createTempFile(prefix, suffix); - }else{ + } else { return Files.createTempFile(mkdir(dir), prefix, suffix); } } catch (final IOException ioex) { // fixes java.io.WinNTFileSystem.createFileExclusively access denied