Я хочу удалить файл на моем локальном компьютере после переноса файла с моей локальной машины на мою удаленную машину ubuntu через SSH. Файл отправляется успешно, но файл не удаляется. Пожалуйста, помогитеЛокальный файл не удаляется после загрузки с помощью SFTP
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class Scp {
public Scp() {
}
public static void transfer() {
String SFTPHOST = "ip address";
int SFTPPORT = 22;
String SFTPUSER = "username";
String SFTPPASS = "password";
String SFTPWORKINGDIR = "workingDirPath";
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
System.out.println("preparing the host information for sftp.");
JSch jsch = new JSch();
try {
session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT);
//session.connect(30000);
} catch (JSchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
try {
session.connect();
} catch (JSchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Host connected.");
try {
channel = session.openChannel("sftp");
} catch (JSchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
channel.connect();
} catch (JSchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("sftp channel opened and connected.");
try {
channelSftp = (ChannelSftp) channel;
System.out.println(SFTPWORKINGDIR);
channelSftp.cd(SFTPWORKINGDIR);
} catch (SftpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//String path = System.getProperty("user.home");
File f = new File("C:/Users/khun/testFile.txt");
try {
channelSftp.put(new FileInputStream(f), f.getName());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SftpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("File transfered successfully to host.");
channelSftp.exit();
System.out.println("sftp Channel exited.");
channel.disconnect();
System.out.println("Channel disconnected.");
session.disconnect();
System.out.println("Host Session disconnected.");
f.getAbsolutePath();
if(f.delete()) {
System.out.println("File is deleted");
}
}
public static void main(String[] args) {
transfer();
}
}
Есть ли какое-то исключение или что-то еще? – pL4Gu33
, к сожалению, нет никакого исключения. – user3820292
[Не используйте класс 'File' в современном коде] (http://java7fs.wikia.com/wiki/Why_File_sucks). Используйте ['java.nio.file.Files'] (http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html) и связанные классы. – RealSkeptic