SpringBoot获取项目文件的绝对路径和相对路径
【摘要】 SpringBoot获取项目文件的绝对路径和相对路径
@[toc]
1.场景
比如上传图片或者读取项目里的excel文件内容等,都需要准确获取文件路径
2.说明
项目代码大致样式
获取路径说明
所谓获取的相对路径,其实是获取项目打包后的target目录的路径,而不是咱们平常看到的代码路径,具体可查看下方图片
3.举例说明网上常见几种方法的路径获取结果
- request.getServletContext().getRealPath("")
- request.getServletContext().getRealPath("/")
- OperateExcelController.class.getResource("").getPath()
- OperateExcelController.class.getResource("/").getPath()
- OperateExcelController.class.getClassLoader().getResource(“static/尼克.jpg”).getPath()
- 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/
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)