我有以下代码。问题是当我在FileChooser(例如C:\Windows\System32
)中选择某个目录时,它会打印:C:\Windows
(总是比实际低一级)。
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("Wybierz folder z logami");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(true);
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory());
path = chooser.getCurrentDirectory().toString();
jLabel1.setText(path);
答案 0 :(得分:1)
getCurrentDirectory()
返回当前显示的目录的路径。如果在当前目录中选择子目录,则会将其视为当前选定的文件。
因此使用getSelectedFile()
,即使您知道它实际上是一个目录。