【发布时间】:2015-04-14 19:30:52
【问题描述】:
我有一个扩展 JFileChooser 类的 FileSaver 类。构造函数定义一些文件过滤器,设置默认文件过滤器并调用setAcceptAllFileFilterUsed(false)。当用户单击按钮时,会创建一个 FileSaver 对象并为此调用 showSaveDialog()。 FileSaver 类覆盖approveSelection(),以便它可以在调用super.approveSelection() 之前验证输入的文件名。
这对于大多数输入的文件名都很好,但如果文件名包含问号(“?”)或星号(“*”),则不会调用 approveSelection() 并创建一个新的文件过滤器(并在该程序主要将文件过滤器视为其先前的设置)以文件名作为描述。是否可以像处理其他文件名一样处理这些文件名(例如调用 approveSelection() 并相应地设置所选文件)?
此外,似乎包含正斜杠(“/”)的文件名被视为相对于当前目录的路径,因此getSelectedFile().getName() 仅返回斜杠之后的文件名部分(或删除斜杠在文件名的末尾)和附加到目录路径之前的部分。 approveSelection() 是否可以检索完整的文件名以进行验证而不更改目录?
【问题讨论】:
-
不要用 3 个很长的段落描述你的代码,而是提供一个MCVE。
标签: java swing filenames jfilechooser file-writing