В этой статье показано, как переместить файл в другой каталог на том же файловом диске или удаленном сервере.
Файлы.переместить
– Переместить файл в локальную систему.JSch
– Переместить файл для удаления сервера (SFTP)
1. Переместить файл в другой каталог
В этом примере Java используется NIO Files.move
для перемещения файла из другого каталога на том же локальном диске.
package com.mkyong.io.file; import java.io.IOException; import java.nio.file.*; public class FileMove { public static void main(String[] args) { String fromFile = "/home/mkyong/data/db.debug.conf"; String toFile = "/home/mkyong/data/deploy/db.conf"; Path source = Paths.get(fromFile); Path target = Paths.get(toFile); try { // rename or move a file to other path // if target exists, throws FileAlreadyExistsException Files.move(source, target); // if target exists, replace it. // Files.move(source, target, StandardCopyOption.REPLACE_EXISTING); // multiple CopyOption /*CopyOption[] options = { StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES, LinkOption.NOFOLLOW_LINKS }; Files.move(source, target, options);*/ } catch (IOException e) { e.printStackTrace(); } } }
Больше примеров перемещения файлов Java.
2. Переместить файл в каталог удаленного сервера
В этом примере Java используется Библиотека JSch для перемещения файла из локальной системы в другой каталог на удаленном сервере с помощью SFTP .
P.S Предположим, что на удаленном сервере включен вход по SSH (порт по умолчанию 22) с использованием пароля.
com.jcraft jsch 0.1.55
package com.mkyong.io.howto; import com.jcraft.jsch.*; public class SFTPFileTransfer { private static final String REMOTE_HOST = "1.2.3.4"; private static final String USERNAME = ""; private static final String PASSWORD = ""; private static final int REMOTE_PORT = 22; private static final int SESSION_TIMEOUT = 10000; private static final int CHANNEL_TIMEOUT = 5000; public static void main(String[] args) { // local String localFile = "/home/mkyong/hello.sh"; // remote server String remoteFile = "/home/mkyong/test.sh"; Session jschSession = null; try { JSch jsch = new JSch(); jsch.setKnownHosts("/home/mkyong/.ssh/known_hosts"); jschSession = jsch.getSession(USERNAME, REMOTE_HOST, REMOTE_PORT); // authenticate using private key // jsch.addIdentity("/home/mkyong/.ssh/id_rsa"); // authenticate using password jschSession.setPassword(PASSWORD); // 10 seconds session timeout jschSession.connect(SESSION_TIMEOUT); Channel sftp = jschSession.openChannel("sftp"); // 5 seconds timeout sftp.connect(CHANNEL_TIMEOUT); ChannelSftp channelSftp = (ChannelSftp) sftp; // transfer file from local to remote server channelSftp.put(localFile, remoteFile); // download file from remote server to local // channelSftp.get(remoteFile, localFile); channelSftp.exit(); } catch (JSchException | SftpException e) { e.printStackTrace(); } finally { if (jschSession != null) { jschSession.disconnect(); } } } }
Пожалуйста, посетите эту передачу файлов с помощью SFTP на Java (JSch).
Примечание NIO Files.move
не может переместить файл из локальной системы в каталог удаленного сервера.
Скачать Исходный Код
$клон git $клон git
$cd java-ввод-вывод
Рекомендации
- Файлы JavaDoc
- Перемещение файла или каталога
- ДЩ
- Википедия SFTP
- Как переименовать или переместить файл в Java
- Переместить файл в Java
- Передача файлов с использованием SFTP на Java (JSch)
Оригинал: “https://mkyong.com/java/how-to-move-file-to-another-directory-in-java/”