0

具体的には、SharePoint からファイルを開こうとしていますが、それは実際には単なる Web サイトであり、適切なアクセス権があるので問題ありません。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を使用してみてください。

これはWebアドレスであり、URLに接続して、接続から取得したストリームからコンテンツを読み取る必要があります。

ここで使用法を参照してください

于 2012-06-29T03:41:22.233 に答える
0

このFileクラスは、ローカル/ローカルにマウントされたファイル システムに存在するファイルの名前/パスを表すためのものです。URL を指定しましたが、それはファイルまたはパス名ではありません。

URLまたはクラスを使用しURI、接続を開いてそれを読み取ろうとする必要があります...

切り取って貼り付けるための埋め込みの例を提供するのではなく、 Java チュートリアル の関連部分を読むことをお勧めします。


チュートリアルを読みましたが、URLからファイルを開くにはどうすればよいですか? データを読み取ろうとしているだけでなく、oft ファイルを Outlook で開きたいのです。

ああ...つまり、「開く」とは、「ファイルのビューアーを備えた別のウィンドウを起動する」ことを意味します。

その場合、コードは正しいアプローチですがFile.exists()、URL が存在するかどうかをテストするために使用することはできません。「http:」しかない場合は、チュートリアルのコード例に従ってファイルを開こうとしURL.openStream()、ファイルが存在するかどうかを示すものとして例外を解釈する必要があります。(HTTP 404 応答は に変わりますFileNotFoundExceptionが、他IOExceptionの も可能です。) ストリームを忘れないでください。そうしないとclose()、コードがファイル記述子をリークします。

実際、URL が存在するかどうかをテストしない方がよいでしょう。それを「開いて」みて、例外を診断してください。

于 2012-06-29T03:58:42.510 に答える