第一步: 先获得classpath路径
String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", "");
这样子可以得到classpath路径,类似于:
F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/WEB-INF/classes/
第二步、把WEB-INF/classes截取就能获得WebAPP目录啦:
String webappRoot = classpath.replaceAll("WEB-INF/classes/", "");
得到的结果就是:
F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/
通过这个路径你就能获取该文件夹下的所有文件啦
代码示例:
String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", "");
String webappRoot = classpath.replaceAll("WEB-INF/classes/", "");
String fileName = webappRoot + "/static/file/temp.xlsx";
File file = new File(fileName);
需要注意!!!
这里的操作只能在windows 下
, 因为 第一步的replaceFirst("/", “”);
windows下 的路径都是 磁盘开头,所以没问题。
但linux 下就不行了,还这样获取的话会出现:
出现异常java.io.FileNotFoundException: export/Packages/
这是因为丢失export 前的 / ,所以去掉 replaceFirst("/", “”);
转载于:https://my.oschina.net/zjllovecode/blog/2998203