第一步: 先得到classpath路徑
java
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目錄啦: linux
String webappRoot = classpath.replaceAll("WEB-INF/classes/", "");
獲得的結果就是:
F:/projects/JavaStudyParent/study-springmvc-junit-test/target/springmvc-junit-test/
經過這個路徑你就能獲取該文件夾下的全部文件啦web
參考:https://endual.iteye.com/blog/2367318spring
代碼示例:windows
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);
須要注意!!!mvc
這裏的操做只能在windows 下, 由於 第一步的replaceFirst("/", "");app
windows下 的路徑都是 磁盤開頭,因此沒問題。webapp
但linux 下就不行了,還這樣獲取的話會出現:this
出現異常java.io.FileNotFoundException: export/Packages/spa
這是由於丟失export 前的 / ,因此去掉 replaceFirst("/", "");