8

新しい Android プロジェクトで JCIFS を使用しています。どういうわけか、URL クラスを使用してファイル パスを一般化することにしました (後でプロトコルを追加できるようにするため)。私がしたことは以下の通りです

URL url = new URL("smb://192.168.1.1/filepath");

そして、java.net.MalformedURLException 例外がスローされます。

Exception in thread "main" java.net.MalformedURLException: unknown protocol: smb
    at java.net.URL.<init>(URL.java:184)
    at java.net.URL.<init>(URL.java:127)

JCIFS FAQを参照すると、クラスを使用する前にプロトコルを登録する必要があることがわかります。しかし、私はAndroidでそうする方法を本当に知りません。ライブラリはすでにこれを行っていると思いますが、Androidではそうではありません。

それで、私は何をすべきですか?

4

2 に答える 2

7

SmbFile リファレンスで、JCIFS リファレンスの使用法を見てきました。

「smb://」URL で java.net.URL クラスを使用する場合、最初に静的な jcifs.Config.registerSmbURLHandler(); を呼び出す必要があります。方法。これは、SMB プロトコル ハンドラーを登録するために必要です。

したがって、この呼び出しを追加すると、正しく機能します。

于 2012-08-05T20:04:13.663 に答える
0

URLオブジェクトは使用しないでください。URLをSmbFileコンストラクターに直接渡します。例えば:

SmbFile file = new SmbFile("smb://192.168.1.1/filepath");

そうすれば、通常のファイルでできることのほとんどすべてを行うことができます。

于 2012-08-01T19:48:59.553 に答える