如何检查文件是不是存在,那么创建新文件的过程是啥? [复制]

Posted

技术标签:

【中文标题】如何检查文件是不是存在,那么创建新文件的过程是啥? [复制]【英文标题】:How to check if a file is exits then what is the process to create new file? [duplicate]如何检查文件是否存在,那么创建新文件的过程是什么? [复制] 【发布时间】:2016-06-13 23:47:12 【问题描述】:

我正在使用JFileChooser 在指定的文件位置生成 PDF 文件,但我的要求是当我们在 d 驱动器位置生成像 d:\\test.pdf** 这样的 PDF 时,我们再次尝试生成相同的 PDF 文件 * *它覆盖了之前的 PDF 文件要求是他们显示消息框以显示它已经生成并生成其他 PDF 文件 name.like test1.pdf 我的问题 代码:申请按钮

    JFileChooser dialog = new JFileChooser();
//            chooser.setDialogType(JFileChooser.SAVE_DIALOG);
        dialog.setCurrentDirectory(new java.io.File("."));
        dialog.setDialogTitle("Save Backup");
        dialog.setApproveButtonText("Save");
        //disables the all filesoptioning here
        dialog.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        dialog.setAcceptAllFileFilterUsed(false);

        if (dialog.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) 
            System.out.println("getCurrentDirectory(): " + dialog.getCurrentDirectory());
            System.out.print("getSelectedFile() : " + dialog.getSelectedFile());

            try 
                String filePath = dialog.getSelectedFile().getPath();
                Document document = new Document();
                PdfWriter.getInstance(document, new FileOutputStream(filePath));
                document.open();
                document.add(new Paragraph(" hello"));
                document.close();
         catch (Exception e) 

        
    

【问题讨论】:

也许看看File.exists()之类的东西。 但是先生,我的问题是如何找出将已经生成的pdf文件和新生成的文件与位置进行比较的位置。 File.equals(File)?我很难理解你的意思。也许从用户的角度解释会发生什么会更好。例如。 1) 用户生成并保存 PDF 2) 用户在编辑器中创建新 PDF。 3)用户去保存旧PDF上的新PDF。 4) ..那应该发生什么? 用户要求是他第一次使用 jfilechooser 创建 pdf 时,如果另一个用户创建像 d 一样的名称,他们会在 5 分钟后在指定位置(如 d:\test.pdf)给出 pdf 的名称: \test.pdf 然后他们显示类似 joptionpane 的消息框以显示名称已退出,请为 pdf 选择另一个名称。 【参考方案1】:
if (dialog.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) 
    File selectedFile = dialog.getSelectedFile();

    if (selectedFile.exists()) 
        JOptionPane.showMessageDialog(this, "Please choose another file.");
        return;
    

    PdfWriter.getInstance(document, new FileOutputStream(selectedFile));
    document.open();
    document.add(new Paragraph(" hello"));
    document.close();

【讨论】:

JOptionPane.showMessageDialog(this, "Please choose another file."); return; 如果我是用户,我希望得到提示。更像是.. int result = JOptionPane.showConfirmDialog(this, "Sure you want to overwrite?"); if (result==JOptionPane.OK_OPTION) .. else .. 只是想向他展示如何检查所选文件是否存在于该上下文中(我猜这是主要问题)。 但首先如何检查生成的 pdf 文件路径和新的创建文件路径,我使用的是 if(chooserobj.getSelectedFile(),getselectedpath==???)joptionpane.showmessagedialog(this,"name已退出,请选择其他名称") 但此代码不起作用 请帮我解决这个问题]' 请发给我找出这个问题的逻辑?

以上是关于如何检查文件是不是存在,那么创建新文件的过程是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

无法创建目录或文件是啥原因导致的

安卓;检查文件是不是存在而不创建新文件

检查文件夹是不是已经存在,如果没有在 laravel 中通过 id 创建一个新文件夹

检查 C 中是不是存在文件的最佳方法是啥?

检查 C 中是不是存在文件的最佳方法是啥?

用于检查文件是不是存在于 Web 服务器上的 Oracle 过程