From d2c9b6c492f99b68884b880f600b7391f9308d6f Mon Sep 17 00:00:00 2001 From: liyj <1617420630@qq.com> Date: Mon, 24 Nov 2025 18:08:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/common/utils/FilePathUtils.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 mall-common/src/main/java/com/suisung/mall/common/utils/FilePathUtils.java diff --git a/mall-common/src/main/java/com/suisung/mall/common/utils/FilePathUtils.java b/mall-common/src/main/java/com/suisung/mall/common/utils/FilePathUtils.java new file mode 100644 index 00000000..aee26a17 --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/utils/FilePathUtils.java @@ -0,0 +1,47 @@ +package com.suisung.mall.common.utils; + +import lombok.Data; + +public class FilePathUtils { + /** + * 使用lastIndexOf分割路径和文件名 + */ + public FilePath splitPathWithString(String fileUrl) { + // 去除域名 + String noDomain = fileUrl.replaceFirst("^https?://[^/]+/", ""); + + // 分割路径和文件名 + int lastSlash = noDomain.lastIndexOf('/'); + String path, filename; + + if (lastSlash != -1) { + path = noDomain.substring(0, lastSlash + 1); + filename = noDomain.substring(lastSlash + 1); + } else { + path = ""; + filename = noDomain; + } + FilePath filePath=new FilePath(); + filePath.path=path; + filePath.filename=filename; + return filePath; +// System.out.println("原始URL: " + fileUrl); +// System.out.println("去除域名: " + noDomain); +// System.out.println("文件路径: " + path); +// System.out.println("文件名称: " + filename); + } + @Data + public class FilePath{ + private String path;//路径,不包含文件名称如media/media/plantform/20250906/ + private String filename;//文件名称 + + } + public static void main(String[] args) { + String cosUrl = "https://media-mall-prod-1259811287.cos.ap-guangzhou.myqcloud.com/media/media/plantform/20250906/b93a9751b35a49fca6cf979829230868.png"; + + // 方法1:基础分割 + FilePath filePath= new FilePathUtils().splitPathWithString(cosUrl); + System.out.println("文件路径: " + filePath.getPath()); + System.out.println("文件名称: " + filePath.getFilename()); + } +}