[英]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.