web工程中java類獲取webapp路徑下的文件

第一步: 先得到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("/", "");

相關文章
相關標籤/搜索