我在新的Android项目中使用JCIFS。不知何故,我决定使用URL类来泛化文件路径(以便以后可以添加更多协议)。我所做的如下
URL url = new URL("smb://192.168.1.1/filepath");
然后抛出java.net.MalformedURLExcure异常。
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上没有。
那么我该怎么做呢?
不要使用URL对象。将URL直接传递到SmbFile构造函数中。例如:
SmbFile file = new SmbFile("smb://192.168.1.1/filepath");
然后,您可以使用常规文件执行大部分操作。
我刚刚看到了JCIFS引用和SmbFile引用中的用法。
当使用java时。网具有“smb://”URL的URL类必须首先调用静态jcifs。配置。registerSmbURLHandler();方法这是注册SMB协议处理程序所必需的。
所以我添加了这个调用,它可以正常工作。
我正试图使用smb URL访问本地计算机上的文件夹。我的项目使用jar:commons-vfs2-2.0.jar和jcifs-1.3.17.jar(以及所有其他所需的jar)。完整的代码是: 我收到例外情况:
我必须将文件复制到本地机器还是完全不同的东西?如果我怎么做? (顺便说一句,我是一个windows用户。我只是在把我的应用程序转换到Mac上,如果我的行话用错了,很抱歉。)
我目前正在使用jcifs-ngJava库来访问SMB驱动器,我知道它支持各种SMB版本。我还知道如何设置支持的最小和最大版本。但是出于调试的目的,我想知道当我从服务器获取目录信息时,哪个版本实际上正在使用(也就是说,服务器和我的客户端已经协商好了)。有人知道如何以编程方式做到这一点吗?
我阅读了jCIFS关于smb文件的api,但还没有找到如何仅使用文件名获得完整的smb路径。我要它回来”smb://aaa.bbb.com/sharedFolder/picture.jpg“当它返回时”smb://aaa.bbb.com/picture.jpg“代码如下:
试图从jcifs转移到jcifs-ng(最新的jar jcifs-ng-2.1.2.jar)以将文件复制到/从远程。我使用旧JCIFS的代码: 在stackoverflow中找到的示例很少,但看起来它们已经过时了。
我有以下代码,其中列出了在我的网络上找到的域。 这给我带来了麻烦 jcifs。中小企业。SmbAuthException:登录失败、用户名未知或密码错误。 问题是,我知道代码应该可以工作,因为有时(比如15次运行中的1次),它会列出它应该列出的域: 域1/域2/域3/ 也尝试了我的家庭网络上的代码,它每次都能工作。 无论如何,如果我尝试列出特定域的文件: raiz=新的SMB文件(“smb://D