0

具体来说,我正在尝试从 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();
          }
    }
    }
4

2 回答 2

1

尝试使用HttpURLConnection

这是一个网址,您需要连接到该 url 并从您从连接中获得的流中读取内容。

请参阅此处的用法

于 2012-06-29T03:41:22.233 回答
0

该类File用于表示位于本地/本地安装的文件系统上的文件的名称/路径。你给了它一个 URL,它不是文件名或路径名。

您应该使用URLorURI类,并尝试通过打开连接来读取它...

我建议您阅读Java 教程的相关部分,而不是给您提供可剪切和粘贴的盆栽示例。


所以我阅读了教程,但是如何从 url 打开文件?这不仅仅是我试图读取数据,而是我想在 Outlook 中打开经常文件。

啊......所以“打开”是指“启动一个带有文件查看器的单独窗口”。

在这种情况下,您的代码是正确的方法,但您不能File.exists()用来测试 URL 是否存在。如果你只有一个“http:”,你需要尝试URL.openStream()按照教程中的示例代码打开文件,并将异常解释为文件是否存在。(HTTP 404 响应变成 aFileNotFoundException但其他IOExceptions 也是可能的。)不要忘记close()流,否则您的代码会泄漏文件描述符。

事实上,您最好不要尝试测试 URL 是否存在。只需尝试“打开”它并诊断异常。

于 2012-06-29T03:58:42.510 回答