簡體   English   中英

如何在java文件管理器應用程序中重命名文件和文件夾?

[英]How to Rename files and folder in java file manager application?

我正在用 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); 顯示文件和文件夾名稱。這是我的項目截圖

在此處輸入圖片說明

問題是這一行:

file.renameTo(file2);

您沒有查看返回值,因此如果它失敗,您的代碼就像成功一樣。

java.io.File 已過時。 它是 Java 1.0 的延續,它有一些不太理想的設計決策。 其中之一是決定讓 File 類的許多方法返回一個值,就像 C 庫所做的那樣,而不是在失敗時拋出異常。

將該行代碼更改為:

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

編譯器會告訴您必須捕獲 IOException。 這是一件好事。 不要寫一個空的catch塊——這個異常會告訴你重命名文件失敗的確切原因。 至少,catch 塊應該在捕獲的異常上調用printStackTrace()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM