正如问题所述,我正在尝试使用JFileChooser获取路径值。JFileChooser的返回给我带来了两个问题。首先,我所做的事情的本质是让用户选择一个目录,然后重命名该文件夹中特定类型的所有文件,例如所有.pdf文件,而保留所有其他文件。在这方面,我在JFileChooser上遇到的问题有两个:
1)我已经知道如何让JFileChooser显示目录中的文件,但不允许用户选择特定的文件。但是,推送Open时,字符串的返回值并不包含JFileChooser内部当前查看的目录。例如,如果用户导航到C:\Documents and Settings\myFolder\Documents\Work并看到工作目录的内容,然后按下“打开”,则作为getAbsolutePath()调用返回的字符串是"C:\Documents and Setting\myFolder\Documents“,永远不会返回" Work”。我如何让它在最终结果中呈现出来?
2)一旦我有了这个字符串,我如何将其转换为路径,以便我可以对其中的文件进行操作?"\“是Java的转义,要使用文件路径作为有效的路径值,需要对其进行转义,即"C:\Documents and Settings\myFolder“不起作用,必须是"C:\Documents and Settings\myFolder”。如何将JFileChooser中的单斜杠()返回字符串转换为所需的双斜杠()路径?
我知道答案可能很简单,我只是更习惯于处理Linux,在那里这不是问题。我刚刚用我的编程技能找到了我的第一份工作,当然,一切都是Windows。
在有人建议之前,是的,我知道使用"/“将适用于相对路径,但对于我正在编写的应用程序,我需要使用绝对路径,因为这些文件可能在主机上,也可能是网络驱动器上,所以我不能使用相对命名,除非我由于没有太多的网络编程经验而忽略了一些东西。
如果没有回应,我感谢你们所有人花时间阅读这篇文章。
Tommie Matherne
发布于 2012-07-21 13:03:26
1.获取所选目录的完整路径的如下所示:
Here myJfc
是instance of JFileChoooser
here
String path = myJfc.getSelectedFile().getAbsolutePath().toString();
2.使用以下命令将字符串转换为路径:
在路径中使用"\“而不是"\"。
即。C:\\Documents and Settings\\myFolder
请注意您在C:驱动器中有适当的权限,否则您的文件将不会在C:驱动器中创建。如果您没有在C:驱动器中创建文件的权限,请尝试其他驱动器,如D:,E:。在那里你不会有任何特权问题。
File f = new File(path);
https://stackoverflow.com/questions/11589326
复制相似问题