2016-08-10 12 views
1

У меня есть файл «C: \ Users \ Wangui Kamande \ Desktop \ social.txt», который я хотел бы сжать в .zip-файл с местоположением «C : \ Users \ Wangui Kamande \ Desktop ". Я получил следующий код с сайта Microsoft, но я не настолько уверен в том, как это сделать. Действительно ли файл «C: \ Users \ Wangui Kamande \ Desktop \ social.txt» должен находиться в папке?VB.Net создание zip-файла и извлечение из zip-файла

код с сайта Mircosoft является:

Private Sub btnCompress_Click(sender As Object, e As EventArgs) Handles btnCompress.Click 
     Dim startPath As String = "c:\example\start" 
     Dim zipPath As String = "c:\example\result.zip" 
     Dim extractPath As String = "c:\example\extract" 
     ZipFile.CreateFromDirectory(startPath, zipPath) 
     ZipFile.ExtractToDirectory(zipPath, extractPath) 
End Sub 

ответ

2

Вы хотите метод ZipArchive.CreateEntryFromFile расширения для добавления отдельных файлов в Zip ...

Using zip = ZipFile.Open("C:\Users\Wangui Kamande\Desktop\social.zip", ZipArchiveMode.Create) 
    zip.CreateEntryFromFile("C:\Users\Wangui Kamande\Desktop\social.txt", "social.txt") 
End Using 

Чтобы извлечь отдельные файлы из ZIP, существует способ расширения ZipArchiveEntry.ExtractToFile, но сначала вам нужно найти соответствующую запись в zip. Вы можете использовать LINQ, чтобы найти запись по имени, как показано ниже:

Using zip = ZipFile.Open("C:\Users\Wangui Kamande\Desktop\social.zip", ZipArchiveMode.Read) 
    Dim entry = zip.Entries.Single(Function(x) x.Name = "social.txt") 
    entry.ExtractToFile("C:\Users\Wangui Kamande\Desktop\social2.txt", True) 
End Using 

2-й параметр ExtractToFile является необязательным и определяет, нужно ли перезаписывать существующие файлы.

+0

Mark, который работает благодаря. Но как насчет извлечения из zip-файла –

+0

@AndreaTand У вас уже есть код 'ZipFile.ExtractToDirectory (zipPath, extractPath)', который вы уже использовали, если вы хотите извлечь все файлы в zip-файле. Извлечение отдельных файлов - это немного больше работы, поэтому дайте мне знать, если это то, что вам нужно сделать. – Mark

+0

Да Отметьте, что я хочу –

Смежные вопросы