2011-07-06 4 views
1

Jusqu'à présent j'avais été en utilisant le code suivant dans le fichier ftp d'un endroit à l'autre: -FTP le fichier dans un emplacement de dossier spécifique

FTPUploader.java

public class FTPUploader { 

    private URLConnection remoteConnection = null; 

    public void connect(String userName, String hostName, String password, 
      String remoteFile) { 
     try { 
      URL url = new URL("ftp://" + userName + ":" + password + "@" 
        + hostName + "/" + remoteFile + ";type=i"); 
      remoteConnection = url.openConnection(); 
     } catch (Exception ex) { 
      throw new RuntimeException(ex); 
     } 
    } 

    public void uploadFile(String fileName) { 
     try { 
      InputStream inputStream = new FileInputStream(fileName); 
      BufferedInputStream read = new BufferedInputStream(inputStream); 
      OutputStream out = remoteConnection.getOutputStream(); 
      byte[] buffer = new byte[1024]; 
      int readCount = 0; 
      while ((readCount = read.read(buffer)) > 0) { 
       out.write(buffer, 0, readCount); 
      } 
      out.flush(); 
      out.close(); 
     } catch (Exception e) { 
      throw new RuntimeException(e); 
     } 
    } 
} 

Maintenant, le problème, la machine où je me connecte avec le nom d'utilisateur/mot de passe, ouvert à un endroit fixe. J'utilise la machine Linux pour tester. Supposons que je me connecte avec abc/123456, automatiquement il me faut /local/abc emplacement, où je peux écrire un fichier.

Maintenant, je veux FTP le fichier à un autre emplacement comme /local/abc/folder1, maintenant comment faire cela, après avoir apporté quelques modifications dans le code ci-dessus.

Merci

Répondre

4

Vous avez des problèmes de commandes de répertoire de changement ftp. Je considérerais using FTPClient d'Apache pour ceci.

+0

+1. Apache FTPClient est un paquet très pratique, et m'a été utile plusieurs fois. – MByD

Questions connexes