Descomprimir fichero .TAR

Iniciado por PETTETE, 2 Febrero 2018, 09:07 AM

0 Miembros y 2 Visitantes están viendo este tema.

PETTETE

Hola buenas,
al intentar descomprimir un fichero .TAR me da el siguiente error.

"El sistema no puede encontrar el archivo especificado"

Para descomprimir el tar uso el siguiente código:

private static void ExtractFileWith7Z(string sourceArchive, string destination)
        {
            string zPath = "7z.exe"; //add to proj and set CopyToOuputDir
           
            try
            {

                ProcessStartInfo pro = new ProcessStartInfo();
                pro.WindowStyle = ProcessWindowStyle.Hidden;
                pro.UseShellExecute = false;
                pro.RedirectStandardOutput = true;
                pro.FileName = zPath;
                pro.Arguments = string.Format("x \"{0}\" -y -o\"{1}\"", sourceArchive, destination);             
                Process x = Process.Start(pro);
             
               // string output = x.StandardOutput.ReadToEnd();
               
             x.WaitForExit();
               

            }
            catch (System.Exception Ex)
            {
                throw Ex;
            }
        }


El código que os facilito es un trocito del código entero.
El código entero lo que hace es mediante un fichero, descomprime todos los ficheros de la carpeta. luego cuanta cuantos ficheros se han descomprimido e inserta la suma esa en una tabla.

La cosa es que los archivos .zip los descomprime sin ningún problema pero cuando localiza un .TAR da error..
¿sabéis porque?

Como bien sabéis, toda ayuda es bien recibida y muy agradecida.
UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)

Eleкtro

Cita de: PETTETE en  2 Febrero 2018, 09:07 AM"El sistema no puede encontrar el archivo especificado"

¿sabéis porque?

El mensaje de la excepción es bastante claro, no tiene nada que ver con archivos .TAR/argumentos de 7z.exe, sino más bien con la ruta del executable "7z.exe", que no lo encuentra.

Saludos.








PETTETE

#2
y por que puede ser?
tengo que indicarle la ruta entera del 7z.exe?


Si, Si. Era eso.. ajjajaja

muchas graciaaaas!!
UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)

Eleкtro

Cita de: PETTETE en  2 Febrero 2018, 09:44 AM
tengo que indicarle la ruta entera del 7z.exe?

Si, Si. Era eso.. ajjajaja

No, puedes indicarle una ruta relativa como estabas haciendo:
Citar
Código (csharp) [Seleccionar]
string zPath = "7z.exe"
...solo que el archivo 7z.exe debe existir en el directorio de trabajo, es decir, en el directorio de inicio de tu programa.exe, junto a tu programa.exe, vaya.

Al parecer ya te diste cuenta de eso y lo solucionaste, me alegro.

Saludos!