Как переименовать файл Java.nio? - PullRequest
0 голосов
/ 26 октября 2018

Получил хранилище "client_storage/", и мне нужно переименовать файлы в нем.

Использование TextInputDialog для переименования.

TextInputDialog отлично работает.

Но у меня есть метод Exception in Files.move().

Вот мой код:

    public void renameFile(ActionEvent actionEvent) {
    TextInputDialog dialog = new TextInputDialog("Rename");
    dialog.setTitle("Rename");
    dialog.setHeaderText("Rename File");
    dialog.setContentText("New name");
    Optional<String> res = dialog.showAndWait();

    if (res.isPresent()) {
        try {
            Path paths = Paths.get("client_storage/" + ClientListView.getSelectionModel().getSelectedItems());
            Files.move(paths, paths.resolve(res.get()), StandardCopyOption.REPLACE_EXISTING);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

получил исключение в этой строке:

Files.move(paths, paths.resolve(res.get()), StandardCopyOption.REPLACE_EXISTING);

что я делаю не так?

java.nio.file.NoSuchFileException: client_storage\[text file.txt];

Ответы [ 3 ]

0 голосов
/ 26 октября 2018

Я думаю, что-то это

 Path paths = Paths.get("client_storage/" + ClientListView.getSelectionModel().getSelectedItems());

 Path paths1 = Paths.get("client_storage/" + newName);

 Files.move(paths, paths1, StandardCopyOption.REPLACE_EXISTING);
0 голосов
/ 26 октября 2018

Работайте так:

 public void renameFile(ActionEvent actionEvent) {
    TextInputDialog dialog = new TextInputDialog("Rename");
    dialog.setTitle("Rename");
    dialog.setHeaderText("Rename File");
    dialog.setContentText("New name");
    Optional<String> res = dialog.showAndWait();
    if (res.isPresent()) {
        try {
            Path paths = Paths.get("client_storage/" + ClientListView.getSelectionModel().getSelectedItem());
            Files.move(paths, paths.resolveSibling(res.get()));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
0 голосов
/ 26 октября 2018

ClientListView.getSelectionModel().getSelectedItems() возвращает список, отсюда и скобки в сообщении об ошибке.

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