java - 将 'getSelectedFile' 写成字符串 (Java)

标签 java file-io jfilechooser

    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/

相关文章:

java - 为什么 append 函数在 ActionListener 中不起作用?

java - JFilechooser 更改默认外观

java - JVM内存中的java char big endian吗?

Java:您可以从您自己的类中公开第 3 方接口(interface)吗

Python 无法在 r+ 模式下打开 11gb csv 但在 r 模式下打开

java - 如何从类创建对象数组,然后将它们传递给子类?

java - 使用多线程写入文件

Java - 使用 JFileChooser 将字符串路径存储在表中,获取设置方法?

java - 为什么Spring MVC会以404响应并报告“在DispatcherServlet中未找到带有URI […]的HTTP请求的映射”?

java - 我可以在 jdbc 中使用批处理执行查询吗?