2016-06-01 74 views
1

您好我正在開發一個應用程序連接到遠程服務器,並通過不同的目錄瀏覽。如何使用JSch的SFTP通道只獲取目錄和文本文件?

這裏我只想給用戶顯示目錄和文本文件。在JSch中使用SFTP通道,我可以執行ls方法。但是這種方法可以給我以這種格式的結果"*""*.txt"。分開使用ls我可以獲取目錄列表和文本文件列表。由於我使用它單獨我必須使用2層不同的ls的方法,如:

sftpChannel.ls("*"); 
sftpChannel.ls("*.txt"); 

1日給我的,我有循環和過濾目錄中的所有條目。第二,我得到所有的文本文件。

如何使用最小代碼獲取目錄列表和文本文件列表。我不想循環兩次。謝謝

回答

2

使用ls("")。然後循環返回的條目,並只選擇你想要的。

I.e.那些LsEntry.getFilename()結尾爲".txt"LsEntry.getAttrs().isDir()

+0

我想它應該是ls(「*」)而不是ls(「」)。感謝您的建議。這可以爲我工作。 :) –

+0

其實''「*」'是過度殺毒,因爲它使JSch毫無意義地匹配所有找到的文件對掩碼'*' –

+0

是的,我知道。:D我已upvoted但未標記爲接受,因爲我沒有嘗試。剛纔檢查了一下,它爲我工作。再次感謝:) –