java.io.FileNotFoundException:C:\Users\admin\Desktop\abcd(访问被拒绝)
我正在尝试将目录传输到sftp远程服务器java.io.FileNotFoundException:C:\Users\admin\Desktop\abcd(访问被拒绝),java,ssh,jsch,Java,Ssh,Jsch,我正在尝试将目录传输到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 Fold
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(访问被拒绝)
如何解决这个问题?abcd不是一个文件,而是一个目录。压缩目录并作为文件发送,或者获取所有文件并逐个发送
File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println("File " + listOfFiles[i].getName());
} else if (listOfFiles[i].isDirectory()) {
System.out.println("Directory " + listOfFiles[i].getName());
}
}
File folder=新文件(“您的/path”);
File[]listOfFiles=folder.listFiles();
for(int i=0;i
可能的重复项您无法使用FileInputStream打开文件夹。abcd是一个目录而不是文件。@danyal:是的,但我需要将整个文件夹传输到服务器…压缩文件夹并传输..或者迭代文件并逐个发送。。