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 回答