前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot获取项目文件的绝对路径和相对路径

SpringBoot获取项目文件的绝对路径和相对路径

原创
作者头像
刘大猫
修改2024-11-08 21:48:32
470
修改2024-11-08 21:48:32
举报
文章被收录于专栏:Spring及SpringBoot相关

@toc

1.场景

比如上传图片或者读取项目里的excel文件内容等,都需要准确获取文件路径

2.说明

项目代码大致样式

获取路径说明

所谓获取的相对路径,其实是获取项目打包后的target目录的路径,而不是咱们平常看到的代码路径,具体可查看下方图片

3.举例说明网上常见几种方法的路径获取结果

  1. request.getServletContext().getRealPath("")
  2. request.getServletContext().getRealPath("/")
  3. OperateExcelController.class.getResource("").getPath()
  4. OperateExcelController.class.getResource("/").getPath()
  5. OperateExcelController.class.getClassLoader().getResource("static/尼克.jpg").getPath()
  6. ResourceUtils.getURL("classpath:").getPath()

其中OperateExcelController为所在的类,ResourceUtils引入的是package org.springframework.util;

详情说明:

方法1、2的request.getServletContext().getRealPath("")和 request.getServletContext().getRealPath("/")

获得的路径不是项目路径,而是c盘下一个tomcat目录路径)undefined结果比如:C:\Users\211145187\AppData\Local\Temp\tomcat-docbase.8888.12632778012386910853\

方法3、4、5、6的OperateExcelController.class.getResource("").getPath()和OperateExcelController.class.getResource("/").getPath()和OperateExcelController.class.getClassLoader().getResource("").getPath()和ResourceUtils.getURL("classpath:").getPath()

实际获取的都是编译包里的根据经 比如:xx.class.getResource("").getPath()=xx.class.getResource("/").getPath()=xx.class.getClassLoader().getResource("").getPath()=ResourceUtils.getURL("classpath:").getPath()

结果比如:/E:/WorkSpace/demo/target/classes/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.场景
  • 2.说明
    • 项目代码大致样式
      • 获取路径说明
      • 3.举例说明网上常见几种方法的路径获取结果
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档