Java: Di chuyển tập tin hoặc thư mục

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Bạn có thể di chuyển một tập tin hoặc thư mục bằng cách sử dụng phương thức move(Path, Path, CopyOption...). Việc di chuyển sẽ thất bại nếu tập tin đích tồn tại, trừ khi trùy chọn REPLACE_EXISTING được chỉ định.

Ta cũng có thể di chuyển được thư mục rỗng. Nếu thư mục không rỗng thì việc di chuyển sẽ được cho phép khi thư mục có thể được di chuyển mà không cần di chuyển các nội dung trong thư mục đó. Trên hệ thống UNIX, việc di chuyển một thư mục trong cùng một phân vùng thông thường sẽ bao gồm cả việc đổi tên các thư mục đó. Trong tình hình đó, phương thức move() sẽ được thực hiện ngay cả khi thư mục chứa các tập tin.

move() có một đối số varargs là StandardCopyOption và có những hỗ trợ như sau:

  • REPLACE_EXISTING - Thực hiện di chuyển ngay cả khi các tập tin đích đã tồn tại. Nếu đích là một liên kết tượng trưng thì nó được thay thế nhưng những gì nó trỏ tới không bị ảnh hưởng.

  • ATOMIC_MOVE - Thực hiện việc di chuyển như là một tập tin hoạt động duy nhất. Nếu hệ thống tập tin không hỗ trợ việc di chuyển duy nhất thì một ngoại lệ được ném ra. Với mỗi ATOMIC_MOVE ta có thể di chuyển một tập tin vào một thư mục và được đảm bảo rằng từ thư mục đó ta có thể truy cập vào tập tin một cách bình thường.

Chương trình sau đây minh họa cách sử dụng phương thức move():

import static java.nio.file.StandardCopyOption.*;
...
Files.move(source, target, REPLACE_EXISTING);

Mặc dù bạn có thể thực thi phương thức move() trên một thư mục duy nhất, nhưng phương thức này thường được sử dụng với cơ chế tập cây đệ quy. Để biết thêm thông tin, xem Walking the file tree.

» Tiếp: Quản lý siêu dữ liệu (File và File lưu các thuộc tính)
« Trước: Sao chép tập tin hoặc thư mục
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!