Как распаковать файл .zip в Windows Mobile? - PullRequest
3 голосов
/ 06 марта 2009

Мне нужно программно распаковать zip-архив в папку на Windows Mobile. Есть ли простой в использовании API, который я могу использовать напрямую, или я должен пойти с какой-нибудь внешней библиотекой?

Ответы [ 3 ]

7 голосов
/ 06 марта 2009

Вам нужна внешняя библиотека. Существует zlibce.dll, нативная DLL, которую вы можете использовать, если C ++ - это ваш успех.

Если вам подходит .NET, я могу порекомендовать DotNetZip , который работает на .NETCF 2.0, бесплатный, с открытым исходным кодом и имеет хороший документ, хорошую производительность В дистрибутиве исходного кода DotNetZip есть проект CF-Unzipper, который вы можете просматривать и компилировать; это демонстрирует, как разархивировать файлы на устройстве. Вот ссылка, по которой вы можете просмотреть код для приложения устройства.

Это фрагмент кода, относящийся к почтовым индексам. Распаковывается в каталог, который берет свое имя из zip-файла (без расширения .zip).

    private void UnzipSelectedFile()
    {
        string parent = System.IO.Path.GetDirectoryName(_selectedpath);
        string dir = System.IO.Path.Combine(parent,
            System.IO.Path.GetFileNameWithoutExtension(_selectedpath));
        try
        {
            using (var zip1 = new Ionic.Zip.ZipFile(_selectedpath))
            {
                foreach (var entry in zip1)
                {
                    entry.Extract(dir, true);
                }
            }

            // re-populate the treeview with the extracted files:
            AddChildren(tvFolders.SelectedNode.Parent);

        }
        catch (Exception ex)
        {
            MessageBox.Show("Exception! " + ex);
        }
    }

Вот ссылка на онлайн-версию документа для библиотеки.

0 голосов
/ 06 марта 2009

Независимо от того, какой язык вы используете, вы можете использовать Info-ZIP в качестве внешнего исполняемого файла.

0 голосов
/ 06 марта 2009

Если вы используете .Net Compact Framework, вы можете использовать http://www.icsharpcode.net/OpenSource/SharpZipLib. Я считаю, что он поддерживает работу на CF.

...