物乞いで、私の目標は何かを指摘したいと思います-カタログの構造をそのまま維持して分割(非)圧縮アーカイブを作成することです。
私はいくつかのライブラリをチェックしましたが、SevenZipSharp が私のやり方に最も近いようです。
現在、次のようなコードがあります。
public static void PackFiles()
{
string dll = @"C:\Users\MyUsername\Downloads\7zip32b\7z.dll";
SevenZipCompressor.SetLibraryPath(dll);
SevenZipCompressor compressor = new SevenZipCompressor();
compressor.ArchiveFormat = OutArchiveFormat.SevenZip;
compressor.CompressionMode = CompressionMode.Create;
compressor.TempFolderPath = System.IO.Path.GetTempPath();
compressor.VolumeSize = 1 * 1024 * 1024;
//compressor.CompressDirectory(defaultContentFolder, (defaultReadyZipFolder + zipName + ".zip"));
// THIS ONE IS WORKING, BUT PACKS WHOLE FOLDER INSIDE ARCHIVE..
string[] files = Directory.GetFiles(defaultContentFolder,"*.*",SearchOption.AllDirectories);
compressor.CompressFiles(@"C:\Users\MyUsername\Packed\ArchiveName", files);
Console.WriteLine("Zipped!");
}
というわけで、上でコメントしたとおりです。使用するcompressor.CompressDirectory
と、分割される別のアーカイブ内にパックされたフォルダー全体を圧縮することができました。全然かわいくない…
そこで、dir 内のファイルのリストを彼に渡して、それらを 1 つのアーカイブとしてパックすることを考えましたが、うまくいきません。
デバッグすると、コンパイラはCompressFiles
メソッドを実行するだけですが、スキップされたか何かのように、コードの他の部分にはまったく入力しません... files パラメータは実際にはファイルパスの配列から構成されているので、その部分は問題ありませんか?
そこで何が起こっているのですか?それとも、チェックする別のソリューションですか?
前もって感謝します!