#java #javafx
Всем добрый день, я хочу чтобы пользователь выбирал где сохранять файл сам через FileChooser в JavaFX, но когда он выбирает директорию например D:\File\ а тут мне выдают сообщение что я не могу сохранять файлы в данной директории!!! Я администратор и я не могу сохранять, печально... Как сделать так, чтобы я мог сохранять там, где захочу? FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Select directory for save"); fileChooser.setInitialFileName("decryptImage"); fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image", "*.png")); File newImageFile = fileChooser.showSaveDialog(expandOverlapButton.getScene().getWindow()); А далее я использую объект newImageFile в методе ImageIO.write(...);
Ответы
Ответ 1
Чтобы исключить недоразумений можете попробовать запустить вот этот код и проверить будет ли происходить сохранение? import javafx.application.Application; import javafx.embed.swing.SwingFXUtils; import javafx.scene.image.ImageView; import javafx.stage.FileChooser; import javafx.stage.Stage; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; public class Test extends Application { @Override public void start(Stage primaryStage) throws IOException { Stage stage = new Stage(); FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Select directory for save"); fileChooser.setInitialFileName("decryptImage"); fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image", "*.jpg")); File file = fileChooser.showSaveDialog(stage); if (file != null) { ImageView imageView = new ImageView(); URL url = new URL("https://www.google.by/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png"); BufferedImage image = ImageIO.read(url); imageView.setImage(SwingFXUtils.toFXImage(image, null)); ImageIO.write(SwingFXUtils.fromFXImage(imageView.getImage(), null), "png", file); } } public static void main(String[] args) { launch(args); } } Если результат будет тот же, то хотя бы будет понятно, что ошибка где-то в локальном энвароменте поскольку данный код работает на моем локальном компьютере. И если это все-таки будет так, то будем думать дальше.
Комментариев нет:
Отправить комментарий