有人知道一种可靠的方法,用于查看URL中是否存在文件?
在下载之前尝试查看该文件是否存在。
(HTTP,顺便说一句)
答案 0 :(得分:1)
URL url = new URL ( some_url );
URLConnection connection = url.openConnection();
connection.connect();
// Cast to a HttpURLConnection
if ( connection instanceof HttpURLConnection)
{
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int code = httpConnection.getResponseCode();
// do something with code .....
}
else
{
System.err.println ("error - not a http request!");
}
Usually HTTP error codes of 2xx represent success and 3xx for moved/redirection
。
如果您收到'3xx'错误,则回复包含URI: <url> String CrLf
形式的一个或多个标题行,使用此新url
并重复上述过程。
答案 1 :(得分:1)
文件存在可以使用的JAVA URI:
Files.exists(Paths.get(URI))
但是该解决方案不适用于HTTP协议(URL)
相反,您可以使用下面的代码片段来验证 http:// 或 file://
的文件是否存在 try {
InputStream openConnection = URI.create("https://your.domain.p1/path/1233/file.doc").toURL().openStream();
} catch (Exception ex) {
System.out.println(" invalid resource ");
}
答案 2 :(得分:0)
一般不可能这样做。如果您知道URL是具有“file:”协议的本地URL,则可以将其转换为常规File对象并以此方式检查其存在。如果协议是“http:”等,则无法在不尝试打开流的情况下检查是否存在。即使这样,你也需要解释响应(以协议依赖的方式),以便知道是否存在某些东西。对于HTTP,如果找不到文件,您可能会得到404响应,但它可能是另一个响应代码。取决于您正在访问的服务。