Метод сжатия SevenZipSharp ничего не делает, но почему?

с самого начала я хотел бы отметить, что моя цель - создать разделенный (несжатый) архив с сохранением структуры каталога нетронутой.

Я проверил несколько библиотек, но мне кажется, что 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 мне удалось заархивировать всю папку, которая затем была упакована в другой архив, который разделился. Совсем не красиво...

Поэтому я подумал о том, чтобы дать ему список файлов внутри каталога, чтобы упаковать их в один архив, но это не работает.

Когда я отлаживаю, компилятор просто выполняет метод CompressFiles, но вообще не вводит другие части кода, как будто он был пропущен или что-то в этом роде... Параметр файлов действительно состоит из массива путей к файлам, так что эта часть в порядке?

Есть идеи, что там происходит? Или, может быть, разные решения для проверки?

Заранее спасибо!


person Tomasz Tarnowski    schedule 08.10.2015    source источник


Ответы (1)