open.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new java.io.File("."));
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
System.out.println(fileChooser.getSelectedFile());
}
}
});
这可能是一个措辞糟糕的问题,但我们开始吧:
我需要这部分代码来生成“fileChooser.getSelectedFile());”以一种可以在其他地方使用的格式。我不介意它是一个变量(不会真正起作用,因为我需要在另一个 actionListener 中调用它)或(按照我的计划)将所选文件夹作为字符串输出到输出文件,然后在其他地方读取该文件在程序中。
重要的是文件路径(例如 C:/Users/Desktop/)是一个字符串,因为这是将使用该路径的类接收的内容。
我尝试了几个选项,但经常遇到“不可转换类型的编译错误等”,如果有人有任何想法可以分享,那就太好了
最佳答案
JFileChoose.getSelectedFile() 返回一个文件对象,而不是一个字符串对象。
File 对象具有 getAbsolutePath()、getPath()、getName()、getParent() 等方法,它们返回文件名和路径的字符串版本。
所以像这样:
File file = fileChooser.getSelectedFile();
System.out.println("Selected file is: "+file.getAbsolutePath()+"/"+file.getName());
应该让你得到你想要的。
另外仅供引用,这不会编译...
String exportPath = fileChooser.getSelectedFile();
... 因为 getSelectedFile() 返回的 File 对象不是 String 对象。但是,File 对象(像所有对象一样)有一个 toString() 方法,当您执行此操作时会自动调用该方法来构建字符串 ...
String exportPath = fileChooser.getSelectedFile() +"\\";
正如我所说,优雅的方式应该是这样的:
String exportPath = fileChooser.getSelectedFile().getAbsolutePath();
希望这对您有所帮助,祝您好运! 罗布
关于java - 将 'getSelectedFile' 写成字符串 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984636/