【发布时间】:2015-03-17 06:09:21
【问题描述】:
我正在尝试将目录传输到 sftp 远程服务器。
import java.io.File;
import java.io.FileInputStream;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class FolderTransfer {
public FolderTransfer() {
}
public static void main(String[] args) {
String SFTPHOST = "hostname";
int SFTPPORT = 22;
String SFTPUSER = "admin";
String SFTPPASS = "password";
String SFTPWORKINGDIR = "/cygdrive/c/Users/admin";
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
try {
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp) channel;
channelSftp.cd(SFTPWORKINGDIR);
File f = new File("C:\\Users\\admin\\Desktop\\abcd\\");
channelSftp.put(new FileInputStream(f), f.getName());
System.out.println("done....");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
但我收到了类似的错误 java.io.FileNotFoundException: C:\Users\admin\Desktop\abcd(访问被拒绝) 我该如何解决这个问题?
【问题讨论】:
-
您无法使用 FileInputStream 打开文件夹。
-
abcd 是目录而不是文件..
-
@danyal:是的,但我需要将整个文件夹传输到服务器...
-
压缩文件夹并传输它..或遍历文件并逐个发送..