преобразование файлов в один ZIP с использованием C # - PullRequest
0 голосов
/ 07 марта 2011

Я использую код C # для страниц aspx. Мне нужно конвертировать несколько файлов в один zip-файл, который может быть прочитан программой Windows zip по умолчанию.

Может ли кто-нибудь иметь представление об этом ...?

Ответы [ 4 ]

6 голосов
/ 07 марта 2011

См. Это руководство: Создание Zip-архивов в .NET (без внешней библиотеки, например, SharpZipLib)

ZipFile zip= new ZipFile("MyNewZip.zip"); 
zip.AddDirectory("My Pictures", true); // AddDirectory recurses subdirectories
zip.Save(); 

Или вы можете использовать SharpZipLib .

2 голосов
/ 07 марта 2011

Используйте бесплатную библиотеку, такую ​​как

http://www.sharpdevelop.net/OpenSource/SharpZipLib/

1 голос
/ 07 марта 2011

// использовать эту библиотеку SharpZipLib.
С его помощью вы можете отправить несколько файлов для архивирования, выбранного пользователя и сохранить его по физическому пути, указанному вами на клиенте.

public string zipfile(string[] files)
    {


        string[] filenames = new string[files.Length];


            for (int i = 0; i < files.Length; i++)
                filenames[i] = HttpContext.Current.Request.PhysicalApplicationPath + files[i].Remove(0, 10// set it according to your filename).ToString();
        else
            for (int i = 0; i < files.Length; i++)
                filenames[i] = HttpContext.Current.Request.PhysicalApplicationPath + files[i].Replace(HttpContext.Current.Request.UrlReferrer.ToString(), "");
        string DirectoryName = filenames[0].Remove(filenames[0].LastIndexOf('/'));
        DirectoryName = DirectoryName.Substring(DirectoryName.LastIndexOf('/') + 1).Replace("\\", "");

        try
        {

            string newFile = HttpContext.Current.Request.PhysicalApplicationPath + "the physical path where you want to save it" + DirectoryName + ".zip";
            if (File.Exists(newFile))
                File.Delete(newFile);
            using (ZipFile zip = new ZipFile())
            {

                foreach (string file in filenames)
                {

                    string newfileName = file.Replace("\\'", "'");
                    zip.CompressionLevel = 0;
                    zip.AddFile(newfileName, "");
                }

                zip.Save(newFile);
            }
        }
1 голос
/ 07 марта 2011

DotNetZip - хороший открытый код без каких-либо проблем с лицензированием.

...