如何避免 .getSelectedFile() 过早选择?

How to avoid .getSelectedFile() premature selection?

看起来 .getSelectedFile() 函数即使在选择取消选项后仍会从文件选择器中选择一个文件夹。有不同的功能吗?像 getOpenedFolder(),也许吧?我将不胜感激任何帮助。这是我的代码:

        boolean flag = false;
        fc.setCurrentDirectory(new java.io.File("C:/Users/michaelartichoke/Desktop"));
        fc.setDialogTitle("PDF Manager");
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        fc.showOpenDialog(null);
        
        chosenfolder = fc.getSelectedFile();
        try{
            folderpath = chosenfolder.getAbsolutePath();
            flag = true;
        } catch(Exception e){
            //
        }
        
        if(flag!=false){
            selecting();
        }

仅供参考,selecting() 是创建数据库的命令。

您需要查看 showOpenDialog() 返回的结果以查看用户是否选择了“打开”:

int res = fc.showOpenDialog(null);
if (res==JFileChooser.APPROVE_OPTION) {
    // User picked 'Open"
    chosenfolder = fc.getSelectedFile();
    // ...
}