具体来说,我正在尝试从SharePoint打开一个文件,但它实际上只是一个网站,我有正确的访问权限,所以“不是问题。我试图在java中使用桌面api打开它,但它给我一个错误消息“文件不存在!”桌面只能在本地运行吗?如果它适用于网站,我做错了什么?
基于stephen c的建议的新代码,但它仍然不起作用。我错过了什么?
public class ParseURL {
public static void main(String[] args) throws Exception {
try {
URL url = new URL("http://wss/is/sites/itsd/network/Remote%20Access/Soft%20Tokens/Your%20new%20RSA%20Soft%20Token%20for%20Android%20-%20INC%20XXXXXXX.oft");
InputStream is = url.openStream();
is.close();
} catch(IOException err) {
}
}
}
旧代码
public static void main(){
try {
File oftFile = new File("http://wss/is/sites/itsd/network/Remote%20Access/Soft%20Tokens/Your%20new%20RSA%20Soft%20Token%20for%20Android%20-%20INC%20XXXXXXX.oft
");
if (oftFile.exists()) {
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(oftFile);
} else {
System.out.println("Awt Desktop is not supported!");
}
} else {
System.out.println("File does not exist!");
}
System.out.println("Done");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
答案 2 :(得分:0)
File
类用于表示本地/本地安装的文件系统上存在的文件的名称/路径。你给它一个URL,那不是文件或路径名。
您应该使用URL
或URI
类,并尝试通过打开连接来阅读它...
相反,为您提供剪切和粘贴的封装示例,我建议您阅读t he relevant parts of the Java Tutorials。
所以我读了教程,但是如何从网址打开文件?这不只是我试图读取数据,而是想在Outlook中打开oft文件。
啊......所以“打开”你的意思是“用文件查看器启动一个单独的窗口”。
在这种情况下,您的代码是正确的方法,但您不能使用File.exists()
来测试URL是否存在。如果您拥有的只是“http:”,则需要尝试按照教程中的示例代码使用URL.openStream()
打开文件,并将异常解释为该文件是否存在。 (HTTP 404响应变为FileNotFoundException
,但其他IOException
也是可能的。)不要忘记close()
流,否则您的代码将泄漏文件描述符。
事实上,您最好不要尝试测试URL是否存在。只是尝试“打开”它并诊断异常。