Java 在Windows XP中从JFileChooser获取路径值

Java 在Windows XP中从JFileChooser获取路径值,java,swing,file-io,jfilechooser,Java,Swing,File Io,Jfilechooser,正如问题所述,我正在尝试使用JFileChooser获取路径值。JFileChooser的返回给我带来了两个问题。首先,我所做的工作的确切性质是让用户选择一个目录,然后重命名该文件夹中某一类型的所有文件,例如,所有.pdf文件,同时保留所有其他文件。在这方面,我与JFileChooser之间存在两个问题: 1) 我已经知道如何让JFileChooser显示目录中的文件,但不允许用户专门选择文件。但是,当按下“Open”时,字符串的返回值不包括JFileChooser中当前查看的目录。例如,如果用

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

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

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

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

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

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


Tommie Matherne

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

此处
myJfc
是JFileChoooser的
实例
此处

String path =  myJfc.getSelectedFile().getAbsolutePath().toString();
2.使用以下命令将字符串转换为路径:

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

例如,
C:\\Documents and Settings\\myFolder

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

File f = new File(path);

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

此处
myJfc
是JFileChoooser的
实例
此处

String path =  myJfc.getSelectedFile().getAbsolutePath().toString();
2.使用以下命令将字符串转换为路径:

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

例如,
C:\\Documents and Settings\\myFolder

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

File f = new File(path);

好吧,我想我有点模棱两可。我正在尝试将Path类型的变量设置为变量,以便可以将整个文件夹的内容检索到ArrayList中,以便以后进行工作。我的问题是试图用返回的字符串设置Path变量。返回的字符串包含单斜杠,而不是所需的双斜杠,简单替换不起作用,因为Windows文件路径中的斜杠在Java中是转义字符。如何得到那些双斜线?谢谢你,别客气。愚蠢的乌云随着我的寒冷消失了。我明白你的意思了。再次感谢。好吧,我想我有点模棱两可。我正在尝试将Path类型的变量设置为变量,以便可以将整个文件夹的内容检索到ArrayList中,以便以后进行工作。我的问题是试图用返回的字符串设置Path变量。返回的字符串包含单斜杠,而不是所需的双斜杠,简单替换不起作用,因为Windows文件路径中的斜杠在Java中是转义字符。如何得到那些双斜线?谢谢你,别客气。愚蠢的乌云随着我的寒冷消失了。我明白你的意思了。再次感谢。