Рубрики
Без рубрики

Как переместить файл в другой каталог на Java

В этой статье показано, как “Файлы.переместить` и “JSch” переместить файл в другой каталог на том же файловом диске или удаленном сервере.

В этой статье показано, как переместить файл в другой каталог на том же файловом диске или удаленном сервере.

  • Файлы.переместить – Переместить файл в локальную систему.
  • 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-ввод-вывод

Рекомендации

Оригинал: “https://mkyong.com/java/how-to-move-file-to-another-directory-in-java/”