2010-01-25 3 views
3

Как загрузить ZIP-папку с удаленного сервера и разархивировать все файлы в папке и сохранить их в изолированном хранилище от серебряного света 3 или 4 из браузера. Любое предложение, пожалуйста,Загрузите папку zip с удаленного сервера и распакуйте папку из приложения silverlight

+0

Можно использовать повышенные привилегии Silverlight 4? Минимальная версия Windows, которую вы хотите поддержать? – AnthonyWJones

ответ

5

Вы можете скачать файл почтового индекса, как и любые файлы с классом WebClient, обратите внимание на детали и примерах в документации MSDN для downloading content on demand него даже переговоров о том, как загрузить и получить конкретный файл из zip-архива.

Однако, если вы хотите перечислить файлы, зарегистрируйтесь this blogpost, я на самом деле не пробовал, но он показывает, как получить все файлы в zip-архиве.

Редактировать: Я также нашел this discussion, который предлагает некоторые идеи, среди прочего это упоминает об этом Small unzip utility для Silverlight, который кажется немного более надежным.

Для сохранения файлов необходимо использовать класс IsolatedStorageFile.

Удачи! Ola

+0

В блоге предполагается, что имена записей закодированы в UTF-8, к сожалению, многие Zip-файлы будут использовать IBM437 для кодировки символов, а формат zip не предоставляет средств для определения какой кодировки был использован. – AnthonyWJones

+0

Хорошая точка, вторая утилита, которую я нашел, «Небольшая утилита для распаковки» может быть немного более надежной, но тогда она может иметь тот же недостаток, я не знаком с кодировкой zip и т. Д. –

+0

К сожалению, ссылка на «Небольшой unzip utititly» сломан на сегодняшний день ... См. Http://www.sharpgis.net/post/2009/04/22/REALLY-small-unzip-utility-for-Silverlight.aspx – Marcel

0

Для (un) zipping я очень рекомендую использовать открытый источник DotNetZip library. DotNetZip лицензируется под Ms-PL и очень проста в использовании.

Архивирование, например, является слишком легко:

using (ZipFile zip = new ZipFile()) 
{ 
    zip.AddEntry("MyFileName.png", null, pngStream); 

    // Save to stream from SaveFileDialog 
    zip.Save(stream); 
} 
0

Silverlight SharpZipLib является полной Silverlight 3/4 и Phone7 порт, меньше шифрования AES, из SharpZipLib.

Ограничение выделения - это то, которое вы найдете во всех средах Silverlight: поддерживается только кодировка метаданных UTF8.