Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Работа с zip-архивами. C# (http://forum.oszone.net/showthread.php?t=183695)

Efsey 24-08-2010 07:47 1480532

Работа с zip-архивами. C#
 
Здрасте.

Насколько знаю в cmd достаточно использовать:
Код:

unzip -o *.zip
при условии что папке лежит стандартный unzip.exe

Подскажите как произвести распаковку архива методами .NET

Добавил
Код:

private void arh_Click(object sender, EventArgs e)
        {
            try
            {
                Process prog = new Process();
                prog.StartInfo.ErrorDialog = true;
                prog.StartInfo.FileName = "D:\\1\\unzip.exe";
                prog.StartInfo.Arguments = "-o *.zip";
                prog.Start();
                prog.WaitForInputIdle();
            }           
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Но почему то не обрабатываются аргументы.

Delirium 24-08-2010 08:33 1480547

ZIP/UnZip Folders in C#
Работа с ZIP файлами в C#

LilLoco 24-08-2010 10:28 1480599

Вложений: 1
Используй библиотеку ICSharpCode.SharpZipLib! Добавляй в references!ну а далее так:

Код:

using ICSharpCode.SharpZipLib.Zip;
Код:

FastZip FZ = new FastZip();
FZ.ExtractZip("Путь архива.zip","назначение","[фильтры]");


Efsey 24-08-2010 15:33 1480790

Я по английски не очень... Как произвести распаковку архива(ов) в одной папке (аргументами или функцией), если неизвестны названия?

Delirium 24-08-2010 16:04 1480804

Efsey, ну можно обходом папки, примерно так(в данном примере не проверяются расширения файлов). Будем считать что в указанной папке лежат одни ZIP файлы:

Код:

OpenFileDialog fd= new OpenFileDialog();
FastZip FZ = new FastZip();

                        if(fd.ShowDialog() == DialogResult.OK)
                        {

                                foreach(string filename in fd.FileNames)
                                {
                                        FileInfo info = new FileInfo(filename);
FZ.ExtractZip(Path.GetDirectoryName(info.FullName) + "\\" + Path.GetFileName(info.FullName),"C:\\temp","[фильтры]");
                                }
                        }

Цитата:

Цитата Efsey
Я по английски не очень... »

А как же вы хотите программировать и не знать английского? Его знание крайне желательно, хотя бы для того, чтобы понимать визуально, что делает тот или иной код.

LilLoco 24-08-2010 16:13 1480809

Если я правильно понял: есть папка, в ней могут быть архивы .zip в неизвестном количестве, и неизвестными именами!и нужно их извлечь?!?!?!
Если так, то вот как приблизительно можно сделать :

Код:

DirectoryInfo DI = new DirectoryInfo("Директория где будут лежать архивы");
foreach (FileInfo FI in DI.GetFiles("*.zip")) //Перебираем только файлы архивов
{
        //Получаем список всех zip архивов(FI.FullName) и делаем с ними что нить!
}

ЗЫ. Не Забыть подключить
Код:

System.IO


Время: 21:07.

Время: 21:07.
© OSzone.net 2001-