鉴于我们使用下面的代码 设置路径= servletCtxt.getResourcePaths(“/ app / themes”);
如何判断路径中的路径是目录还是实际文件?
这通常是在拉链战争中。
我找到的是这个,但我认为它不可靠:
当它是文件时
servletCtxt.getResource(dir).getContent()
returned (java.io.ByteArrayInputStream) java.io.ByteArrayInputStream@5a645a64
当它返回目录时:
(org.apache.naming.resources.FileDirContext) org.apache.naming.resources.FileDirContext@57155715
可以说我可以在getContent返回的内容中使用带有InputStream的instanceof吗?
由于
答案 0 :(得分: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/"}
。
好像你可以简单地依赖路径的最后一个字符。