vb.net - 如何创建具有相同文件名但具有不同文件扩展名的多个文件的 zip 文件夹
问题描述
我需要创建包含多个文件的 zip 文件夹,这些文件具有相同的文件名,但文件扩展名不同。例如,在一个文件夹中,我将拥有:
- 字段 1.shp
- 字段 1.shx
- 字段 1.prj
- 字段 1.dbf
- 字段 2.shp
- 字段 2.shx
- 字段 2.prj
- 字段 2.dbf
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 文件。
先感谢您。
解决方案
这是我通过之前通过 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 文件中。
推荐阅读
- python - 在 numpy 中如何在内部转换值
- vba - 多行文本框将第一行设置为粗体
- asp.net - 更新面板不起作用:接收错误:“响应”不是有效的脚本名称。名称必须以“.js”结尾
- c# - 将 Appium 测试结果记录到控制台
- python - 有没有办法置换矩阵的子集?
- java - 使用 AJAX 在按钮单击事件后重新加载检票口组件
- laravel - 如何使用 Laravel 自定义包,称为 laravel-users?
- java - 如何修复“JAR 将为空 - 没有内容被标记为包含!” maven-jar-插件?
- python - Scrapy 规则、allowed_domains 回调和拒绝域的不同回调
- c++ - 如何从数组中删除奇数