2017-02-05 10 views
0

私はSFTPプロトコルが初めてです。 SFTPプロトコルを使ってサーバからすべてのファイルとフォルダをリストする必要があります。Javaを使用してSFTPサーバーからすべてのファイルを一覧表示するにはどうすればよいですか?

public ArrayList<JSONObject> listFiles(String deviceName, String location) throws Exception 
{ 

    this.sftpLogin(); 

    Vector fileListVector; 
    if (Strings.isNullOrEmpty(location)) 
    { 
     fileListVector = channelSftp.ls("/"); 
    } else 
    { 
     fileListVector = channelSftp.ls("/"+location); 
    } 

    ArrayList<JSONObject> fileList = new ArrayList<>(); 

    for (Object aFileListVector : fileListVector) 
    { 
     ChannelSftp.LsEntry entry = (ChannelSftp.LsEntry) aFileListVector; 
     if (entry.getFilename().equalsIgnoreCase(".") || entry.getFilename().equalsIgnoreCase("..")) 
     { 
      continue; 
     } 
     SftpATTRS attrs = entry.getAttrs(); 

     fileList.add(ImportProtocolUtils.getFileJSONObject(attrs.isDir(), location, entry.getFilename())); 
    } 

    return fileList; 
} 

私はこのプロトコルを使用して「シェル」と「execの」チャンネルを試してみました:私はこの使用してJSCHライブラリを実装しました。しかし、コマンド 'ls'は動作していません。

これはJavaでこれに最も適したライブラリはどれですか?

ありがとうございます。

答えて

1

サブディレクトリに再帰する必要があります。以下のような

何か:

if (attrs.isDir()) 
{ 
    fileList.addAll(listFiles(deviceName, location + "/" + entry.getFilename()); 
} 

Display remote directory/all files in Jtree参照してください。

関連する問題