Разархивирование двух разных zip-файлов с помощью sharpziplib в один и тот же каталог

Я довольно много огляделся, и, похоже, нет никакой информации об использовании sharpziplib для извлечения нескольких zip-файлов в один и тот же каталог. Я использую Telerik Control RadUpload для загрузки двух разных zip-папок, и при загрузке они автоматически распаковываются в папку с тем же именем, что и zip, в тот же каталог.

Например: у меня есть autocorrect.zip и Entertainment.zip. Автозамена извлекает в папку с именем «автозамена», а развлекательные извлечения — в папку с названием «развлечения». Автозамена в первом поле, а развлечения во втором.

Но в папке извлечения появляются только "развлечения". Теперь я думаю, что это связано с тем, что в настоящее время у меня настроен метод распаковки, поскольку он принимает первое значение «автозамена», а затем также принимает «развлечение» в качестве первого значения после этого, поэтому «автозамена» больше не указан для извлечения .

Вот мой код для метода распаковки, если вы считаете, что другие части моего кода помогут, скажите, и я опубликую больше:

public static void UnZip(string sourcePath, string targetPath)
{
    //Creates instance of fastzip from library ICSharpCode
    ICSharpCode.SharpZipLib.Zip.FastZip fz = new FastZip();
    //Extracts zip from sourcePath to target path which is chosen in the button click methods
    fz.ExtractZip(sourcePath, targetPath, "");
}

РЕДАКТИРОВАТЬ: Вот метод кнопки, который вызывает распаковку с путем сохранения для zip-файлов и путем сохранения для извлеченных zip-файлов (забыл сказать, что он отлично работает для одного zip-файла, но не для нескольких zip-архивов)

 protected void SubmitButton_Click(object sender, EventArgs e)
    {
        //Gets the name of the file being uploaded
        foreach (UploadedFile file in RadUpload1.UploadedFiles)
        {
            fileName = file.GetName();
        }
        //Path where zip files are uploaded
        String savePath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerik\";
        //Adds name of uploaded file onto end of saved path
        savePath += fileName;
        //Path where the extracted files from the uploaded zip are placed
        String unZipPath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerikExtract\";
        unZipPath += fileName;
        //Runs unzipping method
        UnZip(savePath, unZipPath);

person James Blackburn    schedule 16.07.2012    source источник
comment
Пожалуйста, покажите мне код, который вызывает метод UnZip для обоих почтовых индексов.   -  person HatSoft    schedule 16.07.2012
comment
Я не мог придумать более подходящие теги, извините. Здесь должна быть система личных сообщений (если ее еще нет), чтобы отправлять такие комментарии. Вы действительно оправдали мои надежды...   -  person James Blackburn    schedule 16.07.2012
comment
Привет, HatSoft добавил код. Кстати, может ли кто-нибудь сказать мне, почему я потерял две репутации из-за того, что задал этот вопрос? Кажется, здесь немного грубо с правилами, но я подумал, что это хорошее спокойное место!   -  person James Blackburn    schedule 16.07.2012
comment
Если вы хотите разархивировать каждый файл, переместите его в свой цикл.   -  person bmm6o    schedule 17.07.2012


Ответы (2)


Ваш метод просто получал последнее имя файла и вызывал UnZip только один раз

Таким образом, приведенный ниже код будет вызывать общее количество имен файлов, доступных в RadUpload1.UploadedFiles.

protected void SubmitButton_Click(object sender, EventArgs e)
{

String savePath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerik\";

String unZipPath = @"C:\Users\James\Documents\Visual Studio 2012\WebSites\CourseImport\CourseTelerikExtract\";


foreach (UploadedFile file in RadUpload1.UploadedFiles)
{
   string fileName = file.GetName();

   UnZip((savePath + fileName),  (unZipPath + fileName) );
}

}
person HatSoft    schedule 16.07.2012

проверьте это и попробуйте использовать пример this::

http://wiki.sharpdevelop.net/SharpZipLib-Zip-Samples.ashx

проверьте это и попробуйте использовать пример: Распаковать Zip с полным контролем над операцией

person Shortys Oberto Dutari    schedule 16.07.2012
comment
извини, чувак, я уже знаю, как разархивировать один файл, его несколько, и я все равно ищу ура, чувак :) - person James Blackburn; 16.07.2012