2016-06-01 10 views
1

こんにちは私はリモートサーバーに接続し、別のディレクトリを参照するアプリケーションを開発しています。JSchのSFTPチャンネルを使用してディレクトリとテキストファイルのみを取得する方法は?

ここでは、ディレクトリとテキストファイルのみをユーザーに表示します。 JSchのSFTPチャンネルを使って、lsメソッドを実行できます。しかし、この方法では、この形式の結果を得ることができます"*"または"*.txt"lsを別々に使用すると、ディレクトリリストとテキストファイルリストを取得できます。

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

第一は、私がループフィルタのディレクトリに持って、そこからすべてのエントリを与える:私はそれを使用しておりますので、別途Iは次のように2つの異なるlsメソッドを使用する必要があります。次に、すべてのテキストファイルを取得します。

最小限のコードを使用してディレクトリリストとテキストファイルリストを取得するにはどうすればよいですか。私は2回ループしたくない。ありがとう

答えて

2

ls("")を使用してください。返されたエントリをループし、必要なものだけを選択します。

I.e. が".txt"またはLsEntry.getAttrs().isDir()で終わるもの。

+0

私はls( "")の代わりにls( "*")でなければならないと思います。あなたの提案をありがとう。これは私のために働くことができます。 :) –

+0

実際には、JSchがすべての見つかったファイルをマスク '*'に対して無意識にマッチさせるので、 '' * ''は過剰です。 –

+0

私は知っています.D私はそれをアップしましたが、ほんの数分前にチェックされて、それは私のために働いた。再度ありがとう:) –

関連する問題