Сбой копирования файла Java - PullRequest
0 голосов
/ 05 июля 2019

Я написал очень простую Java-программу для копирования файла, переданного в качестве аргумента, в каталог / tmp.Программа создает несколько исключений Java.

public class CopyFile {
public static void main(String[] args) throws IOException {
    String fqp2File = "";

    if (new File(args[0]).isFile()) {
       fqp2File = args[0];
    }
    else {
       System.out.println("Passed argument is not a file");
    }
    copy(fqp2File, "/tmp");
}

private static boolean copy(String from, String to) throws IOException{
    Path src = Paths.get(from);
    Path dest = Paths.get(to);
    try {
        Files.copy(src, dest, StandardCopyOption.REPLACE_EXISTING);
        return true;
    } catch (IOException ioe) {
        System.err.format("I/O Error when copying file");
        ioe.printStackTrace();
        return false;
    }
}

}

Когда я запускаю эту программу, я получаю следующие ошибки:

java -jar CopyFile.jar /home/downloads/dfA485MVSZ.ncr.pwgsc.gc.ca.1531160874.13500750
I/O Error when copying filejava.nio.file.FileSystemException: /tmp:
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:103)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:114)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:119)
        at sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:578)
        at  sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:265)
        at java.nio.file.Files.copy(Files.java:1285)
        at ca.gc.ssc.gems.esnap.cipo.CopyFile.copy(CopyFile.java:39)
        at ca.gc.ssc.gems.esnap.cipo.CopyFile.main(CopyFile.java:31)

1 Ответ

2 голосов
/ 05 июля 2019

Для проверки вашего кода я использовал C:/tmp/test.txt; в качестве args[0].Я исправил проблему, указав для выходного файла имя файла, которое будет показано ниже:

Path dest = Paths.get(to);

до

Path dest = Paths.get(to, "test2.txt");

И теперь он успешно скопировал файл в это имя. Вы можете изменитьимя файла, однако вы хотите или добавьте логику для автоматического изменения имени файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...