Pregunta

Luego, tar y gzip una lista de archivos en C #.

Necesito ayuda con cómo configurar los argumentos en tar.

Digamos que tengo tar.exe en una carpeta c: \ tar \ tar.exe y un método como el siguiente:

    private void RunTar(string outputFileName, List<string> fileNamePaths)
    {
        using (Process p = new Process())
        {
            p.StartInfo.FileName = @"c:\tar\tar.exe";
            p.StartInfo.Arguments = //;
            p.Start();
            p.WaitForExit();
        }
    }

Nota: la lista fileNamePathsToTar tiene las rutas completas de nombre de archivo unc y los archivos pueden estar en diferentes carpetas.

¿Alguien puede ayudarme con qué argumentos proporcionar?

También noto en la documentación:

-z, --gzip, --ungzip
          filter the archive through gzip

   -Z, --compress, --uncompress
          filter the archive through compress

   --use-compress-program=PROG
          filter through PROG (must accept -d)

No estoy seguro de cómo usar esto, pero si coloco el gzip.exe en la misma carpeta que tar.exe ¿puedo ejecutar mi tar y luego gzip de estos archivos todo en un solo paso ?

Update

Parece que solo puedo hacer que tar funcione en archivos en el mismo directorio que tar.exe si intento un nombre de ruta completo obtengo algo como:

    C:\Tar Test>tar -cf out.tar c:/Tar Test/Text/t1.txt
tar: Cannot add file c:/Tar: No such file or directory
tar: Cannot add file Test/Text/t1.txt: No such file or directory
tar: Error exit delayed from previous errors

He intentado con las barras diagonales en ambos sentidos \ o / y con comillas alrededor del camino completo sin alegría.

Gracias

¿Fue útil?

Solución

para crear un archivo comprimido y gzip, debes usar czf como argumentos, entonces

p.StartInfo.Arguments = "czf";

o

p.StartInfo.Arguments = "-czf";

dependiendo de la versión tar.

para evitar el gzipping, elimine la 'z' de los argumentos.

ah, y será mejor que guardes una carpeta completa, como poner todo tu archivo en una carpeta llamada, por ejemplo, myfolder y tar esa carpeta, no su contenido.

Otros consejos

Para su información, hay una biblioteca tar administrada con fuente completa disponible en http://cheeso.members.winisp.net/srcview. aspx? dir = Tar & amp; file = Tar.cs

Hay un archivo MAKE que le permite compilar Tar.dll o Tar.exe. También hay una aplicación de muestra en VB.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top