2011-01-07 46 views
13

Tôi tự hỏi liệu có thể tạo tệp zip từ các thư mục hay không. Tôi có một thư mục và trong thư mục này có bốn thư mục và trong đó, có các loại tệp khác nhau. Bây giờ tôi muốn zip bốn thư mục đệ quy với các tập tin của họ.Tạo tệp zip từ các thư mục

Tôi đã thử save()gzip() nhưng họ không làm những gì tôi muốn.

Có ai đó gợi ý cho tôi không?

Trả lời

6

Gói Rcompression tại Omegahat có thể thực hiện điều đó. Dưới đây là ví dụ tối thiểu:

library(Rcompression) 
d <- "C:/my_data" 
files <- list.files(d, recursive=TRUE) 
zip("myarchive.zip", files=paste(d, files, sep="/"), altNames=files) 

Xem ?zip để biết thêm ví dụ.

+0

Cảm ơn bạn đã trả lời. Tôi sẽ thử cái này. –

+0

Ví dụ này đã giúp tôi chủ yếu trong trường hợp của tôi. Cảm ơn bạn! –

+2

Sử dụng 'file.path' thay vì' dán (..., sep = "/") '. –

1

Bạn có thể tìm kiếm các mẹo trong các nguồn của odfWeave package.

Nếu bạn tải thư viện và nhập odfWeave, bạn sẽ nhận được nguồn, không quá dài và thực hiện nén và giải nén cũng với các cuộc gọi hệ thống.

Từ nguồn theese, bạn có thể làm một cái gì đó như:

filename = '' # set archive filename 
loc = ''  # set location, if not done before 
setwd(loc) 
zipCmd = paste("zip -r ", filename, " .", sep='') 
system(zipCmd, invisible = TRUE) 

Tất nhiên, zip đều phải được cài đặt.

+0

Cảm ơn phản hồi của bạn. Tôi sẽ thử cái này. –

18

Phạm vi lệnh tar. Trong khi nó không phải là zip, một tập tin tar nén chỉ là tốt.

tarfile <- 'newfile.tgz' 
tar(tarfile,'/path/of/dir/to/tar/up',compression='gzip') 
+4

Tôi quên đề cập đến rằng tar cũng là nền tảng chéo. – Jeff

+3

+1 Tôi không nghĩ rằng điều này thậm chí có thể xảy ra trong R! –

+0

Cảm ơn câu trả lời của bạn. Nghe có vẻ tốt nhưng trong trường hợp của tôi tôi cần .zip. Nhưng tôi lưu ý điều đó :) –

Các vấn đề liên quan