2012-04-19 55 views
1

鑑於我們使用以下 設置路徑= servletCtxt.getResourcePaths(「/應用程序/主題」)的代碼;確定是否從ServletContext的資源是一個文件或目錄

我們怎樣才能知道是否在路徑的路徑是目錄或實際文件?

這通常會在壓縮的戰爭中。

我也覺得這是,但我打賭它是不可靠的:

當它是一個文件

servletCtxt.getResource(dir).getContent() 
    returned (java.io.ByteArrayInputStream) [email protected] 

當它是它返回一個目錄:

(org.apache.naming.resources.FileDirContext) [email protected] 

可以安全地說我可以使用InputStream的instanceof來處理getContent返回的內容嗎?

由於

回答

3

沒有測試我看到的getResourcePaths()的JavaDoc以下:

路徑指示子目錄路徑與/結束。

[...]

例如,對於含有一個Web應用程序:

  • /welcome.html

  • /catalog/index.html

  • /catalog/products.html

  • /catalog/offers/books.html

  • /catalog/offers/music.html

  • /customer/login.jsp

  • /WEB-INF/web.xml

  • /WEB-INF/classes/com.example.OrderServlet.class

  • /WEB-INF/lib/catalog.jar!/META-INF/resources/catalog/moreOffers/books.html

getResourcePaths("/")將返回{"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}, and getResourcePaths("/catalog/")將返回{"/catalog/index.html", "/catalog/products.html", "/catalog/offers/", "/catalog/moreOffers/"}

好像你可以簡單地依靠路徑的最後一個字符。

+0

呃,爲什麼我沒有想到... ... – arinte 2012-04-19 19:01:11

相關問題