文件选择器(FileChooser)

单选文件

  1. FileChooser chooser = new FileChooser();
  2. chooser.setTitle("请选择要打开的文件");//不可设置
  3. chooser.setInitialDirectory(new File("E:\\"));//打开D盘,不设置的话,默认进入首页
  4. //筛选文件类型
  5. chooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("图片类型","*.jpg","*.png"),
  6. new FileChooser.ExtensionFilter("文本类型","*.txt","*.doc"),
  7. new FileChooser.ExtensionFilter("所有类型","*.*"));
  8. File file = chooser.showOpenDialog(new Stage());
  9. //如果不选文件直接关闭窗口的话,返回值为空
  10. if(file != null){
  11. System.out.println(file.getAbsolutePath());//获得要选中的文件的地址
  12. }
  • 筛选文件类型的图

image.png

多选文件

  1. FileChooser chooser = new FileChooser();
  2. List<File> list = chooser.showOpenMultipleDialog(new Stage());//多选文件
  3. //如果不选文件直接关闭窗口的话,返回值为空
  4. if(list != null){
  5. for (File file:list){
  6. System.out.println(file.getAbsolutePath());
  7. }
  8. }

注:和单选的区别就是可以同时选中多个文件

保存文件

  1. FileChooser chooser = new FileChooser();
  2. chooser.setTitle("请选择保存的地址");//不可设置
  3. chooser.setInitialDirectory(new File("E:\\"));//打开E盘
  4. chooser.setInitialFileName("我要保存这个txt文件");//要保存的文件的名字
  5. chooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("文本类型","*.txt"));
  6. File file = chooser.showSaveDialog(new Stage());//多选文件
  7. //如果不选文件直接关闭窗口的话,返回值为空
  8. if(file != null){
  9. System.out.println(file.getAbsolutePath());
  10. //接下来我们也可以对这个已经创建的文件进行写入
  11. }

image.png

文件夹选择器

  1. DirectoryChooser chooser = new DirectoryChooser();
  2. chooser.setTitle("文件夹选择器");
  3. chooser.setInitialDirectory(new File("E:\\"));//打开E盘
  4. File file = chooser.showDialog(new Stage());
  5. if (file != null){
  6. File[] list = file.listFiles();
  7. for (File f :list){
  8. System.out.println(f.getName());
  9. }
  10. }

仅打开资源管理器

方案一(推荐)

  1. Desktop desktop = Desktop.getDesktop();
  2. try {
  3. desktop.open(file);
  4. } catch (IOException e) {
  5. throw new RuntimeException(e);
  6. }

注:仅当打开的是文件夹时,才会打开资源管理器,否则会直接打开文件。

方案二 仅适用Window

  • 不指定位置

    1. Runtime.getRuntime().exec("explorer.exe");
  • 指定地址,如果指定的文件,会选定文件

    1. Runtime.getRuntime().exec("explorer.exe /select," + "C:\\Users\\Administrator\\Desktop");