Le téléchargement de Plusieurs Fichiers via SFTP en utilisant Java
Je suis nouveau sur le java et je suis en train d'écrire un script qui va tirer plusieurs fichiers à partir de différents SFTP sites au quotidien.
J'ai le code ci-dessous qui va tirer 1 fichier de 1 site et il fonctionne, mais j'ai du mal à trouver comment modifier mon code pour qu'il télécharge plusieurs fichiers. Ainsi, par exemple, tous les fichiers dans le répertoire distant, ou seulement certains fichiers contenant certaines lettres
Pouvez-vous me conseiller sur cette s'il vous plaît?
code:-
package package1;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class SFTPpullsshkeys {
public SFTPpullsshkeys() {
}
public static void main(String[] args) {
String SFTPHOST = "IP";
int SFTPPORT = 22;
String SFTPUSER = "Username";
String passphrase = "passphrase";
String SFTPWORKINGDIR = "remote directory";
String prikeyfile = "C:\\Open SSH Key.ppk";
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
try{
JSch jsch = new JSch();
jsch.addIdentity(prikeyfile, passphrase);
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd(SFTPWORKINGDIR);
byte[] buffer = new byte[1024];
BufferedInputStream bis = new BufferedInputStream(channelSftp.get("file.csv"));
File newFile = new File("C:\\file.csv");
OutputStream os = new FileOutputStream(newFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
int readCount;
while
( (readCount = bis.read(buffer)) > 0) {
System.out.println("Writing files to disk: " );
bos.write(buffer, 0, readCount);
}
bis.close();
bos.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
OriginalL'auteur tollgen | 2013-05-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir un listing de répertoire et itérer dessus:
Vous pouvez remplacer tous les 'enregistreur.avertissement " et "logger.info" avec le Système..println si vous n'êtes pas à l'aide d'un enregistreur.
OriginalL'auteur Damienknight
OriginalL'auteur Varun Vikram Singh