将URL字符串转换为java.io.File

时间:2015-02-24 16:51:37

标签: java android

我正在覆盖自定义类中的android.webkit.WebViewClient方法shouldInterceptRequest(WebView view, String url)。在某些情况下,url参数指向加密的本地文件,格式为file:///path/to/file.extension。我需要将字符串url转换为java.io.File来解密它 如何将url参数可靠地转换为有效路径以传递到new File(path)

2 个答案:

答案 0 :(得分:4)

使用以下代码:

new File(new URL(url).toURI());

但这只有在URL不是分层的情况下才有效,这是你的情况。 (例如,如果URL指向JAR文件中的文件,则无法执行此操作。)

答案 1 :(得分:1)

文件构造函数接受URI,请尝试类似:

File file = new File(new URL("file:///path/to/file.extension").toURI());
System.out.println(file);
Output:
\path\to\file.extension