【发布时间】:2015-04-22 15:50:05
【问题描述】:
对于我正在做的 GUI 项目,我正在尝试很好地降低保存机制。我目前正在处理覆盖文件,但遇到了一些问题。
这是我创建的一个测试用例:
Save current file using Save As. When prompted for a file name, give an existing file name with an added file extension.
假设调用了一个已经存在的文件:test.config
如果我输入:test 并按保存,会弹出覆盖提示,这正是我想要的。
如果我输入:test.config 并按保存,NO 会弹出覆盖提示,程序继续。这不是我想要的。我想弹出一个覆盖提示并警告用户。
我一直在各种网站和 Javadocs 中搜索文件,但我似乎无法弄清楚如果用户输入额外的扩展名,如何检查文件是否存在。
这里有一些代码可以帮助你们理解:
...
int returnVal = fc.showSaveDialog(Dialogc.this);
if(returnVal != JFileChooser.APPROVE_OPTION) {
JOptionPane.showMessageDialog(null,
"Error saving file. \nFile not saved.");
return 1;
}
// Get file name
file = fc.getSelectedFile();
/* Check if file exists */
if(file.exists()) {
JOptionPane.showConfirmDialog(null,
"File already exists. Overwrite?", "Overwrite Prompt",
JOptionPane.YES_NO_OPTION);
}
else {
// If it doesn't exist, create new file
}
...
注意:我确实有添加或删除扩展的方法。我应该使用这些来帮助检查给定文件是否已经存在?
【问题讨论】:
标签: java swing jfilechooser overwrite