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

mr_*_*wan 7 java smb android jcifs

我在我的新Android项目中使用JCIFS.不知何故,我决定使用URL类来推广文件路径(所以我可以稍后添加更多协议).我的所作所为如下

URL url = new URL("smb://192.168.1.1/filepath");
Run Code Online (Sandbox Code Playgroud)

然后抛出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)
Run Code Online (Sandbox Code Playgroud)

咨询JCIFS常见问题解答表明我必须在使用该课程之前注册协议.但是我真的不知道如何在Android中这样做.我认为图书馆已经这样做了,但它不适用于Android.

所以我该怎么做 ?

mr_*_*wan 7

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

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

所以我添加了这个调用,它正常工作.


111*_*01b 0

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

SmbFile file = new SmbFile("smb://192.168.1.1/filepath");
Run Code Online (Sandbox Code Playgroud)

然后您就可以完成使用常规文件可以完成的大部分操作。