How can I make a java FileDialog accept directories as its FileType in OS X?

前端 未结 3 1152
北恋
北恋 2020-12-07 01:39

I am trying to switch from using a JFileChooser to a FileDialog when my app is being run on a mac so that it will use the OS X file chooser. So far I have the following cod

3条回答
  •  [愿得一人]
    2020-12-07 02:12

    After using most popular solution for while:

    System.setProperty("apple.awt.fileDialogForDirectories", "true");
    

    I can't resolve translation of Buttons (only in English) of native FileDialog implementation.

    So I get a workaround that works perfectly on macOS:

    try {
        Process process = Runtime.getRuntime().exec(new String[]{//
            "/usr/bin/osascript", //
            "-e", //
            "set selectedFolder to choose folder\n"//
            + "return POSIX path of selectedFolder"
        });
        int result = process.waitFor();
        if (result == 0) {
            String selectedFolder = new BufferedReader(new InputStreamReader(process.getInputStream())).readLine();
            return new File(selectedFolder);
        }
    } catch (Exception ex) {
    }
    
    return null;
    

    Enjoy!

提交回复
热议问题