2012-02-17 60 views
2

我正在maven web應用程序中工作。我需要讀取一個目錄(例如:文件)在我的WebApp文件夾,如下所示,如何讀取Maven Web應用程序的webapp文件夾中的目錄

Java.io.File file = new Java.io.File("path"); 

但我不知道怎麼在這裏指定目錄的路徑。

+0

這個問題與Maven有什麼關係? – 2012-02-17 09:59:59

+0

我正在從事ina maven web應用程序。因此,在Maven工作的人會知道Maven應用程序中的文件夾層次結構。 – Prince 2012-02-17 10:03:15

+1

你認爲web-app目錄結構(部署在服務器上)與你的maven目錄結構相同是錯誤的 – 2012-02-17 10:05:33

回答

2

你不應該給本地路徑地址。路徑應該是相對地址,例如(.war)文件夾下的/files/images

要正確使用相對路徑,我建議你到目標文件夾添加到pom.xml中的資源definiton,請瀏覽網頁 http://www.mkyong.com/maven/how-to-change-maven-resources-folder-location/ http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

你可以參考資源文件夾輕鬆地像這樣的東西:

this.class.getResource("Mydirectory/SubDirectory"); 
+0

我按照你的說法試過了。但它不工作。 Java.io.File file = new Java.io.File(「/ files/subdirectory」); – Prince 2012-02-17 09:42:51

+0

你能發送你的web-app目錄層次結構的截圖嗎? – Juvanis 2012-02-17 09:44:13

+0

我的網頁應用程序目錄層次結構爲Myapplication/src/main/webapp/Mydirectory/SubDirectory – Prince 2012-02-17 09:49:35

0

如有疑問親戚路徑是如何工作的,它總是最好做這樣的事情:

System.out.println(new File("/my/desired/directory").getAbsolutePath()); 

這將打印出類路徑將查找文件的路徑。

假設:

  • servlet容器的webapps目錄位於:/var/lib/tomcat6/webapps
  • 你的web應用被稱爲my-webapp.war

你應該看到下面的輸出:/var/lib/tomcat6/webapps/my-webapp/my/desired/directory

另一個指針:你提到你正在尋找webapp目錄。我希望你知道這個目錄不會以*.war - 結尾,它的內容將會是

+0

我使用Glassfish作爲Web服務器 – Prince 2012-02-17 09:56:14

0

戰爭文件在部署到應用程序服務器時並不總是展開,因此文件系統中可能不存在相對路徑,全部爲

最好的選擇是使用類加載器的getResource,它將返回類路徑(WEB-INF/lib目錄等)中的東西,或者使用ServletContext的getResource()方法在Web應用程序中查找事物本身。

相關問題