将多个文件压缩到一个文件夹

时间:2016-06-16 16:09:15

标签: vb.net zipfile

所以我在努力调和这个概念时遇到了麻烦,因为我所做的每一项改变似乎都无法解决问题。

我有多行textbox并且可以输入多个以逗号分隔的值,以下是详细信息:

  1. 每个值代表一个文件夹
  2. 每个文件夹中都有多个文档/其他文件夹
  3. 所有这些值都在一个主目录中(让我们称之为文件夹路径)
  4. 例如,我输入我的文本框 “65635,65636” ,每个代表目录中的文件夹,即 “\ folderpath \ 65635“ ”\ folderpath \ 65636“ ,我试图通过DotNetZiplib压缩这些整个文件夹,我知道如何做到这一点,如果我特意引用了一个文件夹但是在那里可以通过文本框循环获取文件夹的名称并将文件添加到一个压缩文件夹中吗?

    Using zip As New ZipFile = new ZipFile
     Dim files() As String = Directory.GetFiles(folderpath & textboxvalue) 
     For each textboxvalue in directory.getfiles 
      zip.Addfile(textboxvalue)
    

    我知道zipfile函数会循环使用这些函数而不是假设它是一个大文件。

1 个答案:

答案 0 :(得分:1)

您必须先在数组中拆分文本框值,以获得用逗号分隔的数字。接下来,您需要将文件夹与此拆分文本值组合,正确创建路径。

如果是,请检查系统中是否存在文件夹,然后从目录中获取所有文件,并将每个文件名压缩。

这样的事情:

Using zip As New ZipFile("your zip filename")
For Each str As String In textboxvalue.Split(",")
    Dim path as String = System.IO.Path.Combine(folderpath, str)
    If System.IO.Directory.Exists(path) = False Then
         Continue For
    End If

    Dim files() As String = Directory.GetFiles(path) 

    For Each fileName As String In files
         zip.Addfile(fileName)
    Next 
Next
End Using
相关问题