From 80b6cbfc9c861469146318d0b3dd5f8b8b525b8a Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期五, 01 十一月 2024 15:11:19 +0800 Subject: [PATCH] Revert "集成获取mdm分发通用数据格式接口集成" --- Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/PathUtil.java | 64 ++++++++++++++++++++++++++++++++ 1 files changed, 64 insertions(+), 0 deletions(-) diff --git a/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/PathUtil.java b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/PathUtil.java new file mode 100644 index 0000000..3dcfe74 --- /dev/null +++ b/Source/BladeX-Tool/blade-core-tool/src/main/java/org/springblade/core/tool/utils/PathUtil.java @@ -0,0 +1,64 @@ +package org.springblade.core.tool.utils; + +import org.springframework.lang.Nullable; + +import java.io.File; +import java.net.URL; + +/** + * 鐢ㄦ潵鑾峰彇鍚勭鐩綍 + * + * @author L.cm + */ +public class PathUtil { + public static final String FILE_PROTOCOL = "file"; + public static final String JAR_PROTOCOL = "jar"; + public static final String ZIP_PROTOCOL = "zip"; + public static final String FILE_PROTOCOL_PREFIX = "file:"; + public static final String JAR_FILE_SEPARATOR = "!/"; + + /** + * 鑾峰彇jar鍖呰繍琛屾椂鐨勫綋鍓嶇洰褰� + * + * @return {String} + */ + @Nullable + public static String getJarPath() { + try { + URL url = PathUtil.class.getResource(StringPool.SLASH).toURI().toURL(); + return PathUtil.toFilePath(url); + } catch (Exception e) { + String path = PathUtil.class.getResource(StringPool.EMPTY).getPath(); + return new File(path).getParentFile().getParentFile().getAbsolutePath(); + } + } + + /** + * 杞崲涓烘枃浠惰矾寰� + * + * @param url 璺緞 + * @return {String} + */ + @Nullable + public static String toFilePath(@Nullable URL url) { + if (url == null) { + return null; + } + String protocol = url.getProtocol(); + String file = UrlUtil.decode(url.getPath(), Charsets.UTF_8); + if (FILE_PROTOCOL.equals(protocol)) { + return new File(file).getParentFile().getParentFile().getAbsolutePath(); + } else if (JAR_PROTOCOL.equals(protocol) || ZIP_PROTOCOL.equals(protocol)) { + int ipos = file.indexOf(JAR_FILE_SEPARATOR); + if (ipos > 0) { + file = file.substring(0, ipos); + } + if (file.startsWith(FILE_PROTOCOL_PREFIX)) { + file = file.substring(FILE_PROTOCOL_PREFIX.length()); + } + return new File(file).getParentFile().getAbsolutePath(); + } + return file; + } + +} -- Gitblit v1.9.3