FileSystemHandle: phương thức remove()
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.
Phương thức remove() của giao diện FileSystemHandle yêu cầu xóa mục nhập được biểu diễn bởi handle khỏi hệ thống file nền.
Phương thức remove() cho phép bạn xóa trực tiếp một file hoặc thư mục từ handle của nó. Nếu không có phương thức này, bạn sẽ phải lấy handle của thư mục cha rồi gọi FileSystemDirectoryHandle.removeEntry() trên đó để xóa nó.
Bạn cũng có thể gọi remove() trên thư mục gốc của Origin Private File System để xóa toàn bộ nội dung của nó; sau đó một OPFS mới, rỗng, sẽ được tạo.
Cú pháp
remove()
remove(options)
Tham số
optionsOptional-
Một object chỉ định các tùy chọn cho thao tác xóa. Các thuộc tính có thể có như sau:
recursiveOptional-
Một giá trị boolean mặc định là
false. Khi đặt thànhtruevà mục nhập là thư mục, toàn bộ nội dung của nó sẽ bị xóa đệ quy.
Giá trị trả về
Một Promise được hoàn thành với giá trị undefined.
Ngoại lệ
InvalidModificationErrorDOMException-
Được ném ra nếu
recursiveđược đặt thànhfalsevà mục nhập cần xóa là một thư mục có phần tử con. NoModificationAllowedErrorDOMException-
Được ném ra nếu trình duyệt không thể giành được khóa độc quyền trên mục nhập.
NotAllowedErrorDOMException-
Được ném ra nếu
PermissionStatuskhông phải làgranted. NotFoundErrorDOMException-
Được ném ra nếu không tìm thấy mục nhập.
Ví dụ
Demo FileSystemHandle.remove() của chúng tôi (xem mã nguồn) là một ứng dụng tạo file. Bạn có thể nhập văn bản vào <textarea> rồi nhấn nút <button> "Save file", và ứng dụng sẽ mở một bộ chọn file cho phép bạn lưu văn bản đó vào hệ thống file cục bộ dưới dạng file văn bản mà bạn chọn. Bạn cũng có thể chọn xóa các file đã tạo.
Ứng dụng không cho phép xem nội dung các file đã tạo và cũng không đồng bộ với hệ thống file nền khi tải lại hoặc đóng trang. Điều này có nghĩa là các file do ứng dụng tạo ra vẫn sẽ tồn tại trên hệ thống file nếu bạn không chọn xóa chúng trước khi tải lại hoặc đóng tab.
File picker, file handle, và bản thân file nếu bạn đang tạo file mới, được tạo bằng window.showSaveFilePicker(). Văn bản được ghi vào file qua FileSystemFileHandle.createWritable().
Khi một file đã được tạo trên hệ thống file, một mục được tạo trong ứng dụng (xem processNewFile() trong mã nguồn):
- Một tham chiếu tới file handle được lưu trong mảng
savedFileRefsđể có thể tham chiếu lại sau này. - Một mục danh sách được thêm bên dưới tiêu đề "Saved files" trong giao diện, với tên file hiển thị cùng một nút "Delete".
Khi nhấn nút "Delete", hàm deleteFile() sẽ chạy, trông như sau:
async function deleteFile(e) {
for (const handle of savedFileRefs) {
if (handle.name === `${e.target.id}.txt`) {
await handle.remove();
savedFileRefs = savedFileRefs.filter(
(handle) => handle.name !== `${e.target.id}.txt`,
);
e.target.parentElement.parentElement.removeChild(e.target.parentElement);
}
}
}
Diễn giải:
- Với mỗi file handle được lưu trong mảng
savedFileRefs, chúng ta kiểm tra tên của nó xem có khớp với thuộc tínhidcủa nút đã kích hoạt sự kiện hay không. - Khi tìm thấy phần tử khớp, chúng ta gọi
FileSystemHandle.remove()trên handle đó để xóa file khỏi hệ thống file nền. - Chúng ta cũng loại bỏ handle khớp khỏi mảng
savedFileRefs. - Cuối cùng, chúng ta xóa mục danh sách tương ứng trong giao diện người dùng.
Thông số kỹ thuật
Tính năng này chưa thuộc về bất kỳ đặc tả nào, nhưng có thể trở thành tiêu chuẩn trong tương lai. Xem whatwg/fs#9 để biết chi tiết.