From 012235d05d8dc7c2decdc7229d93033b0399ecbb Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期日, 10 十一月 2024 15:49:53 +0800
Subject: [PATCH] 集成获取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