Tôi hơi bối rối với tất cả các lớp File I/O mới này trong JDK7.Làm cách nào để đổi tên (không di chuyển) tệp trong JDK7?
Giả sử, tôi có Path
và muốn đổi tên tệp, nó đại diện.
Tôi làm cách nào để chỉ định tên mới, khi một lần nữa, Path
được mong đợi?
Path p = /* path to /home/me/file123 */;
Path name = p.getName(); /* gives me file123 */
name.moveTo(/* what now? */); /* how to rename file123 to file456? */
LƯU Ý: Tại sao tôi cần JDK7? Xử lý liên kết tượng trưng!
Vấn đề là: Tôi phải làm điều đó với các tệp, tên và vị trí được biết khi chạy. Vì vậy, những gì tôi cần, là một phương pháp an toàn (không có tác dụng phụ đặc biệt) để tạo tên mới-Đường dẫn của một số tên cũ-Đường dẫn.
Path newName(Path oldName, String newNameString){
/* magic */
}
Vì vậy, tôi chỉ có thể tạo một 'Đường dẫn' mới? Có cái gì đơn giản hơn: Path newName = Paths.get (name.getParent(). ToString() + pathSeparator + "newName"); ? –
Vâng, bây giờ câu hỏi là: làm thế nào để tạo ra con đường như vậy một cách an toàn, để không có trường hợp ngoại lệ nào sẽ khiến nó thất bại. –
Tôi có thể cố gắng mô tả cách bạn có thể lấy đường dẫn ban đầu, bỏ tên 'file123' nối 'file456' thay vào đó và gọi 'name.moveTo()' nhưng vì tôi không thực sự biết Java, tôi sẽ đoán .Những gì tôi ** chắc chắn ** về là một * di chuyển * trở thành một * đổi tên * nếu chỉ có tên tập tin là khác nhau. – pavium