检查Url是否引用文件或DIrectory。 (HTTP)

时间:2012-12-31 10:39:17

标签: java android file url

如何确定网址是指文件或目录。链接http://example.com/test.txt应该返回它是http://example.com/dir/是目录

的文件

我知道您可以使用Uri类执行此操作,但此对象IsFile函数仅适用于file:/// scheme。我正在使用http://方案。有什么想法吗?

谢谢

3 个答案:

答案 0 :(得分:0)

我不确定为什么这个问题长时间没有得到解答/忽视。我在服务器端java遇到了同样的情况(估计它与Android风格类似)。唯一的输入信息是资源的URL,我们需要判断资源是目录还是文件。所以这是我的解决方案。

if ("file".equals(resourceUrl.getProtocol())
    && new File(resourceUrl.toURI()).isDirectory()) {
    // it's a directory
}

希望这有助于下一位读者。

答案 1 :(得分:0)

它不起作用,因为协议将是http:// not file://。

 class TestURL{
   public static boolean isDirectory(URL resourceUrl){
     if ("file".equals(resourceUrl.getProtocol())
       && new File(resourceUrl.toURI()).isDirectory()) {
        true;
     }
     return false;
   }
   public static void main(String[] args){
     System.out.println(TestURL.isDirectory("http://example.com/mydir/"));
   }
 }

答案 2 :(得分:0)

我认为目录http://example.com/some/dir将重定向到http://example.com/some/dir/,文件不会重定向。

即可以检查HEAD响应中的http Location字段:

$ curl -I http://example.com/some/dir | grep Location
Location: http://example.com/some/dir/