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

导读:本篇文章讲解 SpringBoot获取项目文件的绝对路径和相对路径,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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目录路径)
结果比如: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/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106225.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!