いくつかのフォルダを圧縮しようとしています。それらは異なるパスを持ち、同じディレクトリに属しません。
私が与えるコマンドライン引数をテストしましたが、動作しますが、c# から動作させることはできません:
string destination = "some path\\name.7z";
string pathToZip = "path to zip\\7z.exe"; // or 7za.exe
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = pathToZip;
p.Arguments = "a \"" + destination + "\" \"";
// room for the foreach - but even one directory doesn't work right now
p.Arguments += directoryPath + "\" \"";
p.Arguments += "\" -mx=9 -aoa";
Process x = Process.Start(p);
7z.exe を使用すると、まばたきします。7za.exe を使用すると、典型的なコマンド ライン zip シーケンスが得られ、ファイルが圧縮され、アーカイブに追加され、アーカイブが作成されます。
次に、そのファイルを右クリック、開く、またはダブルクリックすると、無効なアーカイブ ( Can not open file "name.7z" as an archive
) であることがわかります。7za を使用してコマンド ラインで抽出してみてください - 同じことです。
編集:私は解決策を見つけました:
私の問題は-aoaオプション(上書きに使用したもの)でした-削除すると機能しました。