从Windows XP中的JFileChooser获取Path值

时间:2012-07-21 03:58:39

标签: java swing file-io jfilechooser

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

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

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

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

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

我感谢你们所有人的阅读时间,如果没有回应的话。

Tommie Matherne

1 个答案:

答案 0 :(得分:1)

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

此处myJfcinstance of JFileChoooser 此处

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

2. 使用以下方法将String转换为路径:

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

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

请注意您在C:驱动器中有正确的权限,否则您的文件将不会在那里创建,如果您没有权限在C:驱动器中创建文件,请尝试其他一些驾驶你喜欢D:,E:等等。你不会有任何特权问题。

File f = new File(path);