jCIFS是一个很棒的库,用于连接Android上的SMB共享,它几乎可以用于我测试过的所有设置.
但是,SmbFile.listFiles()在基于Windows的网络共享上使用该方法时,我的性能却非常低,但只有在PC上以实际用户身份登录时才会出现.简单地获取文件夹列表可能需要几分钟,有时根本没有任何事情发生.
如果我选择以访客身份登录(通过使用"访客"作为用户,并将密码保留为空),一切都很快.通常不到一秒钟.
以下代码有效且速度很快:
try {
NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication("", "guest", ""); // domain, user, password
currentFolder = new SmbFile("smb://host-name-for-my-pc", authentication);
SmbFile[] listFiles = currentFolder.listFiles();
} catch (Exception e) { // Using Exception for the sake of demonstration...
Run Code Online (Sandbox Code Playgroud)
但是,此代码不起作用/非常慢:
try {
NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication("", "my-username", "my-password"); // domain, user, password
currentFolder = new SmbFile("smb://host-name-for-my-pc", authentication);
SmbFile[] listFiles = currentFolder.listFiles();
} catch (Exception e) { // Using Exception for the sake of demonstration...
Run Code Online (Sandbox Code Playgroud)
我和另一个正在使用jCIFS的人交谈,他遇到了同样的问题.
我尝试使用ES文件浏览器连接到同一个共享,它也使用jCIFS,无论使用真实帐户还是以访客身份登录,它都很快.
更新:
如果我使用SmbFile("username:password@server/")它,它的工作原理!不过,我真的希望它可以与之合作NtlmPasswordAuthentication.有任何想法吗?
| 归档时间: |
|
| 查看次数: |
6388 次 |
| 最近记录: |