java - 如何在 java 文件管理器应用程序中重命名文件和文件夹?

标签 java file-manager

我正在用 java 创建一个文件管理器。我在尝试重命名文件和文件夹时遇到问题。我从用户输入中获取新文件名,然后尝试重命名文件。

popupMenu.rename.addActionListener(new ActionListener()
{           public void actionPerformed(ActionEvent e) {
                list.getSelectedValue().toString();
                JFrame frame = new JFrame("Rename");
                final JTextField textField=new JTextField();
                 String s = null;
                 File file2 = new File("newname");
                textField.addActionListener(new ActionListener(){
                       public void actionPerformed(ActionEvent ae){
                       s = textField.getText();
                       }
                    });
                Object o = list.getModel().getElementAt(list.getSelectedIndex());
                File file = new File(o.toString());
                //FileUtils.moveFile(file, newFile);
                  file.renameTo(file2);
                  //Files.move(file.toPath(),file.toPath().resolveSibling(textField.getText()));

                frame.add(textField);
                frame.setLocationRelativeTo(frame);
                frame.setSize(200,60);
                frame.setVisible(true);
            }
        });

请指出我犯的任何错误。

此外,有没有一种方法可以通过单击文本将文件重命名为类似于 Windows。我正在通过 setText(fileName); 显示文件和文件夹名称。这是我的项目屏幕截图

enter image description here

最佳答案

问题是这一行:

file.renameTo(file2);

您没有查看返回值,因此如果失败,您的代码就像成功一样。

java.io.File 已过时。它是 Java 1.0 的遗留物,它有一些不太理想的设计决策。其中包括决定让 File 类的许多方法返回一个值,就像 C 库所做的那样,而不是在失败时抛出异常。

将该行代码更改为:

Files.move(file.toPath(), file2.toPath());

编译器会告诉你必须捕获 IOException。这是一件好事。不要编写一个空的catch block ——该异常会告诉您重命名文件失败的确切原因。至少,catch block 应该在捕获到异常时调用 printStackTrace()

关于java - 如何在 java 文件管理器应用程序中重命名文件和文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33630577/

相关文章:

java - 如何正确配置 JavaMail 发送 byte[] 附件

java - 以 DB2 作为后端的 jsp 分页

java - 通过网络访问 USB Midi 设备

customization - 在 FAR 管理器中按日期排序文件

asp.net - 免费的开源 asp.net 文件管理器?

java - 使用Maven构建的Docker镜像看不到静态文件

java - JTable 未显示

javascript - PHP/HTML/JS : External file manager

python - 是否可以在 PyQt 应用程序中预览 pdf?

vim - vim 文件管理器