在Android上使用JCIFS库时在URL中使用SMB协议

时间:2012-07-22 07:47:42

标签: java android smb jcifs

我在我的新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。

那我该怎么办?

2 个答案:

答案 0 :(得分:7)

我刚刚在SmbFile参考中看到了JCIFS参考中的用法。

  

使用带有&#39; smb://&#39;的java.net.URL类时URL是必要的   首先调用静态jcifs.Config.registerSmbURLHandler();方法。   这是注册SMB协议处理程序所必需的。

所以我添加了这个调用,它运行正常。

答案 1 :(得分:0)

不要使用网址对象。将URL直接传递给SmbFile构造函数。例如:

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

然后,您可以使用常规文件执行大部分操作。