2012-01-17 36 views
13

Necesito combinar 3 archivos en 1 archivo zip y ponerlo a disposición del usuario para su descarga. Puedo cumplir mis requisitos excepto una cosa: comprime los archivos en las subcarpetas.Creando archivo Zip usando SharpZipLib

Por ejemplo, mis archivos se encuentran como la siguiente:

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

Pero en el archivo zip, zip que los archivos de la carpeta mediante el uso de "TTCG \ sitios de Internet \ Salud \" como el camino. Por favor mira el archivo adjunto.

Example

no quiero las carpetas de la ruta. Solo quiero 3 archivos en el archivo zip sin carpetas. ¿Cómo puedo lograr eso?

Mis códigos para generar el archivo zip es la siguiente:

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(); 

Respuesta

11

Sobre la base de las preguntas más frecuentes, usted tiene que despojar a la ruta de la carpeta de forma manual:

¿Cómo puedo crear una postal archivo sin carpetas?

Retire la parte de trayectoria del nombre de archivo utilizado para crear un ZipEntry antes de que se añade a una ZipOutputStream

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

El FAQ se puede encontrar here.

Parece ser una limitación de la biblioteca. ¡Espero que esto ayude!

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

Esto no compila el método Agregar no toma 2 cadenas como –

3

Si usted tiene sus archivos en un FileSystemInfo, puede utilizar: z.Add(file.FullName, Path.GetFileName(file.FullName));

Esto agregará los archivos en el directorio raíz de la cremallera.

+0

Esto no compila el método Agregar no toma 2 cadenas como –

+0

@MatthewLock ese método toma 2 cadenas así para mí. SharpZipLib v0.86.0.518 –

Cuestiones relacionadas