Question

Ensuite, tar et gzip une liste de fichiers en C #.

J'ai besoin d'aide pour définir les arguments de tar.

Dites que j'ai tar.exe dans un dossier c: \ tar \ tar.exe et une méthode semblable à celle-ci:

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

Remarque: la liste fileNamePathsToTar contient les chemins d'accès complets aux noms de fichiers et les fichiers peuvent figurer dans des dossiers différents.

Quelqu'un peut-il aider à définir les arguments à fournir?

Je remarque également dans la documentation:

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

Je ne sais pas comment l'utiliser, mais si je place le fichier gzip.exe dans le même dossier que le fichier tar.exe , puis-je exécuter mon fichier tar, puis gzip de ces fichiers en une seule étape ?

Mettre à jour

Je n'arrive apparemment à faire en sorte que tar fonctionne sur les fichiers du même répertoire que tar.exe si j'essaie de spécifier un chemin d'accès complet, et j'obtiens un résultat du type:

    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

J'ai essayé avec les barres obliques dans les deux sens \ ou / et avec des guillemets tout autour du chemin sans joie.

Merci

Était-ce utile?

La solution

pour créer une archive et la gzip, vous devez utiliser czf comme arguments, donc

p.StartInfo.Arguments = "czf";

ou

p.StartInfo.Arguments = "-czf";

en fonction de la version de tar.

pour éviter le gzipping, supprimez le "z" des arguments.

ah, et vous feriez mieux de tarifier tout un dossier, comme de le placer dans un dossier nommé, par exemple, myfolder et tar, ce dossier et non son contenu.

Autres conseils

Pour votre information, il existe une bibliothèque gérée avec source complète disponible sur http://cheeso.members.winisp.net/srcview. aspx? dir = Tar & fichier = Tar.cs

Un fichier makefile vous permet de créer Tar.dll ou Tar.exe. Il y a aussi un exemple d'application en VB.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top