Envoi d'une arboressence en java vers serveur ftp

Contenu du snippet

pas besoin d'acheter l'API editftpjPro qui coute 500 Dollars pour envoyer une arborescence complète (dossier sous dossier fichier ......) vers un serveur FTP et qui créer la même arborescence locale sur le serveur FTP.j'utilise une API gratuite qui est editftpj.

Source / Exemple :

package test;



import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.util.StringTokenizer;

import ftp.FtpConnection;
import ftp.TestFTP;

public class Copy {
	// Dans le contructeur on va utiliser notre methode copy
	// et donc on vas faire quelques ptit test
	String src,dest;
	File DEST,SRC;
	FtpConnection ftp;
	boolean b,t;
	public Copy (FtpConnection ftp,String src, String dest){
		
		System.out.println("**********************************recursivité****************************************************");
		TestFTP test=new TestFTP();
		this.src=src;
		this.ftp=ftp;
		this.dest=dest;
		
		this.SRC = new File (src);//file locale
		this.dest=dest;//le chemin sur le ftp
		String nomfolderlocal=	SRC.getName();
		
			
	    try {
	    	System.out.println("le dossier src :"+nomfolderlocal+"  --  et dest :"+dest);
	    	System.out.println("le dossier coutrant sur le ftp est :"+ftp.getCurrentDirectory());
			
		} catch (IOException e2) {
			System.out.println("erreur de placage sur le serveur");
			e2.printStackTrace();
		}
		
		if (SRC.isDirectory()){
			System.out.println("je verifie que le folder : "+nomfolderlocal+" existe bien sur le serveur ftp ");
			b=test.verifDossierFtp(nomfolderlocal, ftp);
			System.out.println("le folder exitse sur le serveur ? "+b);
		}
		
		
		
		// ben si le rep dest n'existe pas, et notre source est un repertoire
		if (b==false){
			if (SRC.isDirectory()){
				
				
			
				
				
				System.out.println("...................................................................");
				System.out.println("...........................Detection folder......................");
				System.out.println("..................................................................");
				try {
					System.out.println("-----------------+"+nomfolderlocal+"+");
				   ftp.makeDirectory(nomfolderlocal);
				  
				   System.out.println("je creer le repertoire "+nomfolderlocal);
					
					//System.out.println("le dossier coutrant sur le ftp devient :"+ftp.getCurrentDirectory());
					
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}//on se place dans le folder sur ftp
			
				
						for (File f:SRC.listFiles()){
							if(!f.isDirectory()){
								 try {
									ftp.changeDirectory(nomfolderlocal);
								} catch (IOException e1) {
									// TODO Auto-generated catch block
									e1.printStackTrace();
								}
							
								try {
									
									System.out.println("je copy le fichier "+SRC+"\\"+f.getName()+"  dans  "+ftp.getCurrentDirectory());
									ftp.uploadFile(f.getName(),SRC+"\\"+f.getName());
								} catch (IOException e) {
									System.out.println("probleme upload fichier");
									e.printStackTrace();
								}
							
								try {
									System.out.println("je remonte au dosiier pere");
									ftp.parentDirectory();
								} catch (IOException e) {
									// TODO Auto-generated catch block
									e.printStackTrace();
								}
							}
						}
				
				
			}			
		}
		// Mais si jammais c'est un fichier, on fait un simple copie
		if (SRC.isFile()){
			System.out.println("...................................................................");
			System.out.println("...........................Detection Fichier......................");
			System.out.println("..................................................................");
			
				
				/*	
					try {
						System.out.println("je copy le fichier "+src+"  dans  "+ftp.getCurrentDirectory());
						ftp.uploadFile(ftp.getCurrentDirectory(),src);
					} catch (IOException e) {
						System.out.println("probleme upload fichier");
						e.printStackTrace();
					}
		*/
		// et si notre source est un repertoire qu'on doit copié!!! 
		}else if (SRC.isDirectory()){
		// on parcour tout les elements de ce catalogue, 
			for (File f:SRC.listFiles()){
			// et hop on fait un appel recursif a cette classe en mettant a jour les path de src et dest: et le tour est joué
			
				try {
					System.out.println("je lance l'appel recursif et jme place  le repertoire ftp"+ftp.getCurrentDirectory());
					System.out.println("le chemin du fichier locale"+f.getAbsolutePath());
					ftp.changeDirectory(nomfolderlocal);
					new Copy(ftp,f.getAbsolutePath(),ftp.getCurrentDirectory());
				} catch (IOException e) {
					System.out.println("probleme copy appel recusrsirf");
					e.printStackTrace();
				}
			}
		}
		
	}
	/** copie le fichier source dans le fichier resultat
	 * retourne vrai si cela réussit
	 */
}

Conclusion :

pas besoin d'acheter l'API editftpjPro qui coute 500 Dollars pour envoyer une arborescence complète (dossier sous dossier fichier ......) vers un serveur FTP et qui créer la même arborescence locale sur le serveur FTP.j'utilise une API gratuite qui est editftpj.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.