我正在使用jsch从服务器下载文件,下面是我的代码。
public static void downloadFile(TpcCredentialsDTO dto) {
logger.trace("Entering downloadFile() method");
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
boolean success = false;
try {
JSch jsch = new JSch();
session = jsch.getSession(dto.getUsername(), dto.getHost(),
dto.getPort());
session.setPassword(dto.getPassword());
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
logger.info("Connected to " + dto.getHost() + ".");
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp) channel;
List<String> filesToDownload = getFilesToDownload(dto,channelSftp);
if (!filesToDownload.isEmpty()) {
for (String fileDownloadName : filesToDownload) {
success = false;
OutputStream output = new FileOutputStream(
"C:\Download\BLT_03112012");
channelSftp.get("BLT_03112012",output);
success = true;
if (success)
logger.info(ServerConstants.DOWNLOAD_SUCCESS_MSG
+ fileDownloadName);
output.close();
}
}else {
logger.info(ServerConstants.NO_FILES_TO_DOWNLOAD
+ ServerUtils.getDateTime());
success = true;
}
} catch (JSchException ex) {
logger.error( ServerConstants.SFTP_REFUSED_CONNECTION, ex);
} catch (SftpException ex) {
logger.error(ServerConstants.FILE_DOWNLOAD_FAILED, ex);
} catch (IOException ex) {
logger.error(ServerConstants.FILE_NOT_FOUND, ex);
}catch (Exception ex) {
logger.error(ServerConstants.ERROR, ex);
}finally {
if (channelSftp.isConnected()) {
try {
session.disconnect();
channel.disconnect();
channelSftp.quit();
logger.info( ServerConstants.FTP_DISCONNECT);
} catch (Exception ioe) {
logger.error(ServerConstants.FTP_NOT_DISCONNECT, ioe);
}
}
}
logger.trace("Exiting downloadFile() method");
}
sftpChannel.get(filename, outputstream) is throwing an error.
2: File not found at
com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2629)
at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:977)
at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:946)
at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:924)
at
za.co.tpc.sftpserver.SftpConnection.downloadFile(SftpConnection.java:72)
at za.co.tpc.server.execute.FtpMtn.main(FtpMtn.java:44)
相同的代码确实下载了文本文档文件类型,但“文件”文件类型失败
尝试使用路径而不是流:
String destPath = "filename.txt";
if (!filesToDownload.isEmpty()) {
for (String fileDownloadName : filesToDownload) {
success = false;
sftpChannel.get(fileDownloadName , destPath);
编辑,如果您想使用文件和流检查此示例:
http://kodehelp.com/java-program-for-downloading-file-from-sftp-
server/
我正在使用JSCH从SFTP服务器下载文件。我使用单会话,多通道下载文件从不同文件夹位于SFTP。对于这个下载过程,我有一组排定的作业。每项工作将: 每次打开一个新通道()。通道名称:SFTP 使用方法获取要下载的文件总数的大小 如果size(Vector)大于零,则使用下载所有文件 最后关闭打开的通道。 在上面的过程中,大多数时候我得到的文件,找不到或没有这样的文件异常,并没有下载一些文件。 谁
我正在尝试使用JSch从SFTP服务器下载文件到我的本地机器。无论文件大小如何,它只下载16371字节的数据并结束传输。它不会引发任何异常。如果文件小于16371字节,它将成功传输,但对于任何较大的文件,传输都会导致文件损坏。
问题内容: 我想编写连接到我的大学SFTP服务器的脚本,并通过练习下载最新文件。到目前为止,我已经从Paramiko示例中更改了一些代码,但是我不知道如何下载最新文件。 这是我的代码: 问题答案: 使用而不是来获得具有属性(包括文件时间戳记)的列表。 然后,找到具有最大属性的文件条目。 代码如下:
问题内容: 嗨,我有一堆.mp3文件,我想与NSFileManager一起使用并存储在documents文件夹中。有没有一种方法可以在线下载.mp3文件,然后将其保存到documents文件夹?这就是我正在使用的本地文件。 问题答案: 编辑/更新: Xcode 11.5•Swift 5.2 原始答案 Xcode 8.3.2•Swift 3.1
问题内容: 在我的Java应用程序中,我正在使用以下方法从服务器下载文件。 但是此下载非常慢。我该如何快速? 问题答案: 从Java 7开始,您可以下载具有以下内置功能的文件: 对于早期版本,从Java 1.4到Java 6的解决方案是 此代码将URL内容传输到没有任何第三方库的文件。如果仍然很慢,那您就知道这不是附加库的问题,很可能不是Java的问题。至少您在这里没有什么可以改善的。因此,您应该
是否有一种方法可以使用Java JSCH来确定Unix SFTP服务器上最新文件的名称? 我尝试了这篇文章中提到的代码,但它没有获得最新的文件。此外,代码似乎从未停止执行。 如有任何帮助,不胜感激。