【问题标题】:How to Rename files and folder in java file manager application?如何在 java 文件管理器应用程序中重命名文件和文件夹?
【发布时间】:2016-02-11 08:45:51
【问题描述】:

我在 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); 显示文件和文件夹名称。这是我的项目截图

【问题讨论】:

  • 有什么问题?你可以改名字吗?你的日志里有东西吗?
  • 是的,我已经尝试过了,但没有发现对我有用
  • reos 先生,名字没有改变

标签: java file-manager


【解决方案1】:

问题出在这一行:

file.renameTo(file2);

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

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

将该行代码更改为:

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

编译器会告诉你必须捕获 IOException。这是一件好事。不要写一个空的catch 块——这个异常会告诉你为什么你尝试重命名文件失败了。至少,catch 块应该在捕获的异常上调用printStackTrace()

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    相关资源
    最近更新 更多