VớiLàm cách nào để trích xuất một tệp đơn lẻ từ tệp lưu trữ từ xa?
- URL của một kho lưu trữ (ví dụ như một file zip)
- Họ và tên (bao gồm cả đường dẫn) của một tập tin bên trong kho lưu trữ mà
Tôi đang tìm kiếm một cách (tốt nhất là trong Java) để tạo bản sao cục bộ của tệp đó, mà không cần tải xuống toàn bộ lưu trữ đầu tiên.
Từ sự hiểu biết của tôi (có giới hạn), điều đó có thể xảy ra, mặc dù tôi không biết cách thực hiện điều đó. Tôi đã sử dụng TrueZip, vì nó có vẻ hỗ trợ nhiều loại lưu trữ khác nhau, nhưng tôi có nghi ngờ về khả năng hoạt động của nó theo cách như vậy. Có ai có kinh nghiệm với loại điều đó không?
CHỈNH SỬA: cũng có thể làm điều đó với tarball và tarball được nén cũng rất quan trọng đối với tôi.
Cảm ơn bạn; điều này dường như làm việc tốt (thanh lỗi nhỏ), mặc dù tiếc là điều này không thể xử lý bất cứ điều gì nhưng lưu trữ zip. – Oak
Vâng, tại sao bạn nghĩ nó được gọi là 'ZipInputStream'? ;-) Nếu bạn nhìn xung quanh internet, bạn có thể tìm thấy một 'TarInputStream' mà bạn có thể sử dụng gần như giống nhau - hoặc nếu không, bạn có thể viết của riêng bạn. Nó sẽ dễ dàng bởi vì các tập tin tar không được nén, về cơ bản nó chỉ là một tiêu đề cho mỗi tập tin theo sau bởi dữ liệu tập tin. (Wikipedia có một mô tả về định dạng) Đối với lưu trữ tar gzipped, thư viện chuẩn của Java có một 'GZIPInputStream' bạn có thể sử dụng cùng với luồng tar. –
Thật vậy, Apache có một [TarInputStream] (http://javadoc.haefelinger.it/org.apache.ant/1.7.1/org/apache/tools/tar/TarInputStream.html) class :) – Oak