2

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

引数をtarに設定する方法について助けが必要です。

tar.exeがフォルダーc:\ tar \ 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

私はスラッシュを\または/の両方の方法で試しましたが、フルパスを引用符で囲んでみましたが、喜びはありません。

ありがとう

4

2 に答える 2

3

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

p.StartInfo.Arguments = "czf";

また

p.StartInfo.Arguments = "-czf";

tar のバージョンによって異なります。

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

ああ、フォルダ全体を tar したほうがいいです。たとえば、すべてのファイルを myfolder という名前のフォルダに入れ、コンテンツではなくそのフォルダを tar します。

于 2009-09-17T10:18:40.800 に答える
0

参考までに、完全なソースを備えたマネージドtarライブラリが http://cheeso.members.winisp.net/srcview.aspx?dir=Tar&file=Tar.csにあります。

Tar.dllまたはTar.exeをビルドできるようにするmakefileがあります。VBにはサンプルアプリもあります。

于 2009-12-18T18:10:08.237 に答える