C sharp - COMPRIMIR

 
Vista:

COMPRIMIR

Publicado por Lulu (40 intervenciones) el 28/06/2007 15:40:59
Hola, siguiendo algunos ejemplos que he encontrado por internet y tal estoy intentado comprimir un directorio completo con todos sus subdirectorios y lo intento hacer con esto:

public void comprimirDirectorio(List<string> directorios)
{
//de momento USAMOS ESTE PROCEDIMIENTO
ZipOutputStream zipFile = null;

for (int x = 0; x < directorios.Count; x++)
{
try
{
foreach (string dir in Directory.GetDirectories(directorios[x].ToString()))
{
//el nombre que queremos que tenga el fichero comprimido
if (!File.Exists(@"C:\SDS\Modulos Enviados\ModificacionesRecientes.zip"))
{
zipFile = new ZipOutputStream(File.Create(@"C:\SDS\Modulos Enviados\ModificacionesRecientes.zip"));
zipFile.SetLevel(9); //max compression
}

List<string> files = new List<string>(Directory.GetFiles(dir));

foreach (string file in files)
{
byte[] buffer = new byte[4096];

List<string> dirSplit = new List<string>(dir.Split(@"\".ToCharArray()));
List<string> fileSplit = new List<string>(file.Split(@"\".ToCharArray()));

ZipEntry entry = new ZipEntry(dirSplit[dirSplit.Count - 1] + @"\" + fileSplit[fileSplit.Count - 1]);
entry.DateTime = DateTime.Now;
zipFile.PutNextEntry(entry);

FileStream fs = null;
try
{
fs = File.OpenRead(file);
int bytes = 1;

while (bytes > 0)
{
bytes = fs.Read(buffer, 0, buffer.Length);
zipFile.Write(buffer, 0, bytes);
}
}
catch (Exception ex)
{
//Error Handling
}
finally
{
if (fs != null)
{
fs.Close();
}
}
}
}
}
catch (Exception ex)
{
//Error Handling
}
finally
{
if (zipFile != null)
{
zipFile.Finish();
zipFile.Close();
}
}
}
}

le paso un listado con los subdirecorios y los subsubdirectorios y los subsubsubdirectorios de esa carpeta, para que los vaya comprimiendo, pero sólo me funciona con la primera carpeta del listado, el resto no lo hace y es que no consigo verlo. Alguien me puede ayudar, una vez más muchisimas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder