2013-02-18 12 views
7

sono nuovo utilizzando Apache Common vfs, I successo connettersi al server Ho già letto i documenti ma sono bloccato in questo codice. Come posso elencare directory/file?Come elencare file directory/file usando Apache Common vfs

.... 
Session session = null; 
     FileSystemManager fsManager = null; 
     FileSystem fs = null; 
     try { 
      String host = "host_here"; 
      int port = 22; 

      String userStr = "user_here"; 
      char [] username = userStr.toCharArray(); 

      String passStr = "password_here"; 
      char [] password = passStr.toCharArray(); 

      session = SftpClientFactory.createConnection(host, port, username, password, null); 
      //session.connect(); 

      System.out.println("Connected to the server"); 

      FileSystemOptions opts = new FileSystemOptions(); 
      fsManager = VFS.getManager(); 
      FileObject file = fsManager.resolveFile("ftp://"+userStr+":"+passStr+"@"+host+"/home/", opts);  

      // .... whats next i do here? ..... 

     } catch (Exception e) { 
      session.disconnect(); 
      e.printStackTrace(); 
     } 
... 

Please help me, Grazie prima :)

risposta

6

Elenco dei file può essere visualizzato tramite la FileObject#getChildren() metodo.

FileSystemOptions opts = new FileSystemOptions(); 
fsManager = VFS.getManager(); 

// List all the files in that directory.Try to give the directory path 
FileObject localFileObject=fsManager.resolveFile("ftp://"+userStr+":"+passStr+"@"+host+"/home"); 
FileObject[] children = localFileObject.getChildren(); 
for (int i = 0; i < children.length; i++){ 
    System.out.println(children[ i ].getName().getBaseName()); 
} 
// End of List Files. 

FileObject file = fsManager.resolveFile("ftp://"+userStr+":"+passStr+"@"+host+"/home/", opts); 

Il mio suggerimento sarebbe quello di utilizzare JSCH quadro che è meglio per le operazioni di SFTP. Poiché questo Apache Common VFS ha utilizzato intrinsecamente questo framework. La complessità verrà notevolmente ridotta di JSCH.

+0

Grazie srinivas, Ora uso JSCH: D Ma mi chiedo, come salvare la directory (non il file) nella directory di destinazione? – fanjavaid

+0

Vuoi dire creare una nuova directory o salvare una directory con già alcuni file al suo interno? – SRy

+0

Sì, così. È possibile? – fanjavaid

Problemi correlati