2016-06-01 49 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但未标记为接受,因为我没有尝试。刚才检查了一下,它为我工作。再次感谢:) –