gpt4 book ai didi

java - 使用 Java 从远程服务器复制具有特定扩展名的所有文件

转载 作者:行者123 更新时间:2023-12-01 14:07:01 24 4
gpt4 key购买 nike

大家好,我正在尝试创建一个小脚本,它可以让我通过 sftp 将具有特定扩展名的所有文件从远程 Linux 计算机复制到本地计算机。

这是我到目前为止所拥有的代码,如果我给出完整路径,它可以让我使用 Jsch 将一个文件从远程计算机复制到本地计算机。

package transfer;

import com.jcraft.jsch.*;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Scanner;

public class CopyFromServer {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);

System.out.println("Please enter the hostname or ip of the server on which the ctk files can be found: ");
String hostname = sc.nextLine();
System.out.println("Please enter your username: ");
String username = sc.nextLine();
System.out.println("Please enter your password: ");
String password = sc.nextLine();
System.out.println("Please enter the location where your files can be found: ");
String copyFrom = sc.nextLine();
System.out.println("Please enter the location where you want to place your files: ");
String copyTo = sc.nextLine();

JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession(username, hostname, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();

Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;

sftpChannel.get(copyFrom, copyTo);
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
}
}

我希望复制特定文件夹中扩展名为“.jpg”的所有文件并将其放置在用户定义的文件夹中。

我已经尝试过:

sftpChannel.get(copyFrom + "*.jpg", copyTo);

这不起作用,我知道我应该使用类似的东西:

pathname.getName().endsWith("." + fileType)

但我不知道如何用 sftpChannel 来实现它。

最佳答案

您必须使用 sftpChannel.ls("Path to dir"); 它将返回给定路径中的文件列表作为 vector ,并且您必须迭代该 vector 才能下载每个文件sftpChannel.get();

Vector<ChannelSftp.LsEntry> list = sftpChannel .ls("."); 
// iterate through objects in list, and check for extension
for (ChannelSftp.LsEntry listEntry : list) {
sftpChannel.get(listEntry.getFilename(), "fileName");

}
}

关于java - 使用 Java 从远程服务器复制具有特定扩展名的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18831238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com