我在我的新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。
那我该怎么办?
答案 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");
然后,您可以使用常规文件执行大部分操作。