List all files in remote server using Jsch

后端 未结 4 377
萌比男神i
萌比男神i 2021-01-14 02:38

I am trying to list all the files/directory from a remote server using JSCH and i can able to get all the information as well..

But my problem is JSCH list all the

4条回答
  •  终归单人心
    2021-01-14 02:50

    Use LSEntrySelector for accessing the properties of returned file list.

    import java.util.Vector;
    
    import com.jcraft.jsch.Channel;
    import com.jcraft.jsch.ChannelSftp;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
    import com.jcraft.jsch.ChannelSftp.LsEntrySelector;
    import com.jcraft.jsch.ChannelSftp.LsEntry;
    
    
    public class Listremoteserver {
    
    
        /**
         * @param args
         */
        @SuppressWarnings("unchecked")
        public static void main(String[] args) {
            String SFTPHOST = "xxxxx";
            int    SFTPPORT = 22;
            String SFTPUSER = "xxx";
            String SFTPPASS = "xxxxx";
            String SFTPWORKINGDIR = "/root";
    
            Session     session     = null;
            Channel     channel     = null;
            ChannelSftp channelSftp = null;
    
            try{
                JSch jsch = new JSch();
                session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
                session.setPassword(SFTPPASS);
                java.util.Properties config = new java.util.Properties();
                config.put("StrictHostKeyChecking", "no");
                session.setConfig(config);
                session.connect();
                channel = session.openChannel("sftp");
                channel.connect();
                channelSftp = (ChannelSftp)channel;
                channelSftp.cd(SFTPWORKINGDIR);
                Vector filelist=new Vector();
    
                LsEntrySelector selector = new LsEntrySelector() {
                    public int select(LsEntry entry)  {
                        final String filename = entry.getFilename();
                        if (filename.equals(".") || filename.equals("..")) {
                            return CONTINUE;
                        }
                        if (entry.getAttrs().isLink()) {
                            filelist.addElement(filename);
                        }
                        else if (entry.getAttrs().isDir()) {
                            //if (keepDirectory(filename)) {
                            filelist.addElement(entry.getFilename());
                            //}
                        }
                        else {
                            //if (keepFile(filename)) {
                            filelist.addElement(entry.getFilename());
                            //}
                        }
                        return CONTINUE;
                    }
                };
                channelSftp.ls(SFTPWORKINGDIR,selector);
                for(int i=0; i

提交回复
热议问题