1

正如问题所述,我正在尝试使用 JFileChooser 获取路径值。JFileChooser 的返回给我带来了两个问题。首先,我所做的确切性质涉及让用户选择一个目录,然后重命名该文件夹中特定类型的所有文件,例如所有 .pdf 文件,同时保留所有其他文件。在这方面我遇到的 JFileChooser 问题有两个方面:

1)我已经弄清楚如何让 JFileChooser 显示目录中的文件,但不允许用户专门选择一个文件。但是,当“打开”被推送时,字符串的返回值不包括 JFileChooser 中当前查看的目录。例如,如果用户导航到 C:\Documents and Settings\myFolder\Documents\Work 并看到 Work 目录的内容,然后按“打开”,则作为 getAbsolutePath() 调用返回的字符串是“C:\Documents和 Setting\myFolder\Documents" 永远不会返回 "Work"。我如何才能将其呈现在最终结果中?

2)一旦我有了那个字符串,我如何将它转换为一个路径,以便我可以对其中的文件进行操作?"\" 是 Java 的转义,要使用文件路径作为有效的 Path 值,需要对其进行转义,即 "C:\Documents and Settings\myFolder" 不起作用,它必须是 "C:\Documents和设置\myFolder”。如何从 JFileChooser 中的单斜杠 () 返回字符串到我需要的双斜杠 (\) 路径?

我知道答案可能很简单,我只是更习惯于处理 Linux,这不是问题。我刚刚使用我的编程技能找到了我的第一份工作,当然,一切都是 Windows。

在有人建议之前,是的,我知道使用“/”适用于相对路径,但对于我正在编写的应用程序,我需要使用绝对路径,因为这些文件可能位于主机或网络驱动器上,所以我不能使用相对命名,除非我因为没有大量的网络编程经验而忽略了一些东西。

我感谢大家花时间阅读,如果没有回应的话。

汤米·马瑟恩

4

1 回答 1

1

1.要获取所选目录的完整路径,请执行以下操作:

myJfc是一个instance of JFileChoooser 这里

String path =  myJfc.getSelectedFile().getAbsolutePath().toString();

2.使用以下方法将字符串转换为路径:

在路径中使用“\\”而不是“\” 。

IE。C:\\Documents and Settings\\myFolder

请确保您在 C: 驱动器中具有适当的权限,否则您的文件将不会在那里创建,如果您没有在 C: 驱动器中创建文件的权限,请尝试您拥有的其他驱动器,例如 D:, E:等等。你不会有任何特权问题。

File f = new File(path);
于 2012-07-21T05:03:25.623 回答