2013-01-29 180 views
5

jCIFSは、Android上のSMB共有に接続するための素晴らしいライブラリで、テストしたほぼすべての設定でうまく機能します。WindowsでjCIFSのファイルが遅い

ただし、Windowsベースのネットワーク共有でSmbFile.listFiles()メソッドを使用すると、実際のユーザーとしてログインするときに限り、パフォーマンスが非常に低下します。フォルダのリストを取得するには数分かかることがありますが、何も起こらないことがあります。

ゲストとしてログインすることを選択した場合(ユーザーとして「guest」を使用し、パスワードを空のままにしておく)、すべてが高速です。通常は1秒未満です。

次のコードは動作し、それが高速です:/

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... 

このコードは、しかし、動作しません非常に遅いです:

私はJCIFSを使用しています別の男に話を聞いた
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... 

、彼は同じ問題を経験している。

jCIFSも使用するESファイルエクスプローラを使用して同じ共有に接続しようとしましたが、実際のアカウントを使用しているかゲストとしてログインしているかにかかわらず高速です。

アップデート:私は代わりにSmbFile("username:[email protected]/")を使用する場合は

、それは働きます!私は実際にそれがNtlmPasswordAuthenticationと動作するようにしたい。何か案は?

答えて

5

new SmbFile("username:[email protected]/")を使用しているので、私はそれを使用しています。

1

new SmbFile("smb://host-name-for-my-pc/", authentication);を試してみてください。 最後にスラッシュが付きます。

+0

あなたはそれが動作するすべての証拠を持っていますか?そうでない場合、これはコメントでなければならず、答えではありません。 –

+0

それは動作しません、私はすでに質問を投稿する前にそれを試してみました。 –