質問

次に、tarを実行し、C#でファイルのリストをgzipします。

引数をtarに設定する方法についてのヘルプが必要です。

フォルダc:\ tar \ tar.exeにtar.exeがあり、次のようなメソッドがあるとします:

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

注:fileNamePathsToTarリストには完全なuncファイル名パスがあり、ファイルは異なるフォルダーに置くことができます。

引数の提供内容について誰でも助けてください。

また、ドキュメントで気づいた:

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

これの使用方法がわからないが、gzip.exeをtar.exeと同じフォルダに配置した場合、 tarを実行してから、これらのファイルのgzipをすべて1ステップで実行できます

更新

フルパス名を試してみると、tar.exeと同じディレクトリにあるファイルでtarが動作するようにしか見えません。

    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

スラッシュを両方の方法で試してみました\または/と、完全なパスを引用符で囲んで喜びません。

ありがとう

役に立ちましたか?

解決

アーカイブを作成してgzipするには、引数としてczfを使用する必要があるため、

p.StartInfo.Arguments = "czf";

または

p.StartInfo.Arguments = "-czf";

tarバージョンに依存。

gzipを回避するには、引数から「z」を削除します。

ああ、コンテンツ全体ではなく、すべてのファイルをmyfolderなどの名前のフォルダーに入れて、そのフォルダーをtarするように、フォルダー全体をtarした方が良いでしょう。

他のヒント

FYI、完全なソースが利用可能な管理されたtarライブラリがあります。 http://cheeso.members.winisp.net/srcview。 aspx?dir = Tar&amp; file = Tar.cs

Tar.dllまたはTar.exeをビルドできるメイクファイルがあります。 VBにはサンプルアプリもあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top