Извлечение и копирование файлов в локальную папку из zip-архива, хранящегося в хранилище больших двоичных объектов - PullRequest
1 голос
/ 03 октября 2011

Я сохранил свой zip-файл в хранилище BLOB-объектов. Я уже прочитал архив из BLOB в поток .Код выглядит следующим образом

string blobUrl = http://127.0.0.1:10000/devstoreaccount1/usercontrols/ucProfileViewSMSIS.zip";
string containerName = "usercontrols";
Storage.Blob blobHandler = new Storage.Blob();
Stream blobstream = blobHandler.GetBlob(blobUrl, containerName);

В моем архиве три файла. Я хочу написать и записать эти 3 файла в мою локальную папку.

Как мне это сделать?

1 Ответ

2 голосов
/ 03 октября 2011

Вам понадобится библиотека для распаковки, например DotNetZip , чтобы распаковать файлы. В разделе examples есть способ распаковать прямо из потока:

Ввод из потока. Этот пример читает содержимое архива zip из входной поток, затем извлекает содержимое для одной записи в файловую систему файл. В этом примере имя файла «NameOfEntryInArchive.doc» ссылается на только к названию записи в архиве zip. Это имя используется в качестве индекса в строковом индексаторе объекта ZipFile. возвращаемое значение - ZipEntry. Тогда метод ZipEntry.Extract () named, который извлекает именованную запись в файл файловой системы, используя текущий рабочий каталог в качестве базы. Файл с таким именем создан в файловой системе.

using (ZipFile zip = ZipFile.Read(InputStream))
  {
    ZipEntry entry = zip["NameOfEntryInArchive.doc"];
    entry.Extract();  // create filesystem file here. 
  }
...