首页 > 解决方案 > 如何创建具有相同文件名但具有不同文件扩展名的多个文件的 zip 文件夹

问题描述

我需要创建包含多个文件的 zip 文件夹,这些文件具有相同的文件名,但文件扩展名不同。例如,在一个文件夹中,我将拥有:

ETC..

我需要将所有字段 1 文件一起压缩到字段 1.zip 中,字段 2 文件一起压缩到字段 2.zip 等中,循环遍历文件夹。

我目前在这里:

    Private Sub btnZipFiles_Click(sender As Object, e As EventArgs) Handles btnZipFiles.Click
        Dim dir = SelectedPath.Text
        Dim reqextensions As String = "*.dbf,*.prj,*.shp,*.shx"
        Dim files = Directory.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories)


        For Each file In files
            Using zip As New ZipFile
                zip.AddFile(file, "")
                zip.Save(file + ".zip")
            End Using
        Next
    End Sub

我添加了“dotnetzip”和导入的 Ionic.zip。上面的代码将分别压缩每个 .dbf、.prj、.shp 和 .shx 文件,但我坚持如何将每 4 个文件合并为一个 zip 文件。

先感谢您。

标签: vb.net

解决方案


这是我通过之前通过 Directory.EnumerateFiles 调用的文件循环得出的我想要的结果:

        For Each file In files
            Using zip As New ZipFile
                zip.AddFile(dir + "\" + Path.GetFileNameWithoutExtension(file.Name) + ".dbf", "")
                zip.AddFile(dir + "\" + Path.GetFileNameWithoutExtension(file.Name) + ".prj", "")
                zip.AddFile(dir + "\" + Path.GetFileNameWithoutExtension(file.Name) + ".shx", "")
                zip.AddFile(dir + "\" + Path.GetFileNameWithoutExtension(file.Name) + ".shp", "")
                zip.Save(zippath + Path.GetFileNameWithoutExtension(file.Name) + ".zip")
            End Using
        Next

这需要我需要的每个文件部分(.dbf、.prj、.shp、.shx)与一个匹配的文件名,并将每个文件一起压缩到一个 filename.zip 文件中。


推荐阅读