2012-01-17 40 views
13

Tôi cần kết hợp 3 tệp vào 1 tệp zip và cung cấp tệp đó để tải xuống cho người dùng. Tôi có thể đạt được yêu cầu của mình ngoại trừ một điều: nó nén các tệp vào các thư mục con.Tạo tệp Zip bằng cách sử dụng SharpZipLib

Ví dụ, tác phẩm của tôi được đặt như sau:

C:\TTCG\WebSites\Health\ABC.CSV 
C:\TTCG\WebSites\Health\XYZ.CSV 
C:\TTCG\WebSites\Health\123.CSV 

Nhưng trong file zip, nó nén các tập tin trong thư mục bằng cách sử dụng "TTCG \ WebSite \ Sức khỏe \" như con đường. Vui lòng xem tệp đính kèm.

Example

Tôi không muốn các thư mục trong đường dẫn. Tôi chỉ muốn 3 tệp trong tệp zip mà không có thư mục. Làm thế nào tôi có thể đạt được điều đó?

mã của tôi để tạo ra các file zip như sau:

ZipFile z = ZipFile.Create(Server.MapPath("~" + @"\Accident.zip")); 

//initialize the file so that it can accept updates 
z.BeginUpdate(); 

//add the file to the zip file   
z.Add(Server.MapPath("~" + @"\ABC.csv")); 
z.Add(Server.MapPath("~" + @"\XYZ.csv")); 
z.Add(Server.MapPath("~" + @"\123.csv"));   

//commit the update once we are done 
z.CommitUpdate(); 
//close the file 
z.Close(); 

Trả lời

11

Dựa trên FAQ, bạn phải dải đường dẫn thư mục hiện bằng tay:

Làm thế nào tôi có thể tạo ra một Zip tệp không có thư mục?

Để loại bỏ phần đường dẫn của tên tập tin sử dụng để tạo ra một ZipEntry trước khi nó được thêm vào một ZipOutputStream

ZipEntry entry = new ZipEntry(Path.GetFileName(fullPath));

Các câu hỏi thường gặp có thể được tìm thấy here.

Dường như đó là giới hạn của thư viện. Hi vọng điêu nay co ich!

1
z.Add(pathToFile, pathInZipFile); 
+1

Điều này không biên dịch phương thức Thêm không nhận 2 chuỗi như vậy –

3

Nếu bạn có tập tin của bạn trong một FileSystemInfo, bạn có thể sử dụng: z.Add(file.FullName, Path.GetFileName(file.FullName));

này sẽ thêm các tập tin của bạn trong thư mục gốc của zip của bạn.

+0

Điều này không biên dịch phương thức Thêm không nhận 2 chuỗi như vậy –

+0

@MatthewLock rằng phương thức này nhận 2 chuỗi như vậy đối với tôi. SharpZipLib v0.86.0.518 –

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