在Windows上使用jCIFS缓慢列出文件

Mic*_*Bak 6 android jcifs

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.有任何想法吗?

Mic*_*Bak 6

使用new SmbFile("username:password@server/")作品,所以我只是使用它.