如何为filechooser JavaFX中选择的文件设置保存路径

时间:2016-05-02 20:32:57

标签: java javafx filechooser

我在周围搜索但却找不到任何相关信息。 我想为Filechooser中选择的文件设置保存(目标)路径。例如,我选择了一张名为' test.jpg'的图片,我想要这个' test.jpg'保存到C:\ blah \ blah \ blah \图片。我该如何解决这个问题? 到目前为止我的代码

public void OnImageAddBeer(ActionEvent event){

    FileChooser fc = new FileChooser();

    //Set extension filter
    fc.getExtensionFilters().addAll(new ExtensionFilter("JPEG Files (*.jpg)", "*.jpg"));
    File selectedFile = fc.showOpenDialog(null);

    if( selectedFile != null){



    } 
}

4 个答案:

答案 0 :(得分:0)

试试这个:

  String fileName = selectedFile.getName();
  Path target = Paths.get("c:/user/test", fileName);
  Files.copy(selectedFile.toPath(), target);

答案 1 :(得分:0)

您需要做的就是将文件内的内容复制到您想要的任何地方,尝试这样的事情:

if(selectedFile != null){
   copy(selectedFile.getAbsolutePath(), "C:\\blah\\blah\\blah\\Pictures\\test.jpg");
}

和方法副本:

public void copy(String from, String to) {
    FileReader fr = null;
    FileWriter fw = null;
    try {
        fr = new FileReader(from);
        fw = new FileWriter(to);
        int c = fr.read();
        while(c!=-1) {
            fw.write(c);
            c = fr.read();
        }
    } catch(IOException e) {
        e.printStackTrace();
    } finally {
        close(fr);
        close(fw);
    }
}
public static void close(Closeable stream) {
    try {
        if (stream != null) {
            stream.close();
        }
    } catch(IOException e) {
        //...
    }
}

基本上copy只需复制位于from的新文件中位于to内的文件内容。

答案 2 :(得分:0)

如果要设置目标路径,请添加此语句:

fc.setInitialDirectory(new File(System.getProperty("user.home") + "\\Pictures"));

答案 3 :(得分:0)

拿这个:

    String dir = System.getProperty("user.dir");
    File f = new File(dir + "/abc/def");
    fc.setInitialDirectory(f);