【问题标题】:VB: Download ZIP file from internet (and extract)VB:从互联网下载 ZIP 文件(并解压)
【发布时间】:2023-03-22 20:21:01
【问题描述】:

我需要使用 Visual Basic 从 Internet 以某种方式下载 ZIP 文件。 这是我目前拥有的:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim NewAppData As String
    NewAppData = Environment.ExpandEnvironmentVariables("%AppData%/.minecraft.zip")
    Call DownloadFile("http://blahblahbacksheep.co.cc/.minecraft.zip", NewAppData)
End Sub

当我调试程序时,它给了我以下信息:

Function 'DownloadFile' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.

我要做的是下载 ZIP 文件,然后将其解压缩。如果可能的话,用百分比显示标签,例如:

Downloaded: 100%
Extracting: 35%....

谁能给我任何资源或写一些代码来完成部分/所有这些?

谢谢

【问题讨论】:

  • 您的问题实际上是两个完全不同的问题:为什么下载时会出现错误,以及如何提取 zip 存档。为了使事情保持整洁,并提高您同时得到答案的机会,确实应该将它们作为两个不同的问题发布。
  • 对不起,公平地说,我同时对自己感到困惑。我也不想发布太多问题。但是谢谢:)

标签: vb.net file zip


【解决方案1】:

对于您问题的解压缩部分:7-Zip 是一个非常棒的开源文件归档实用程序,它有一个很好的命令行界面。下面是如何从 VB 调用 7-Zip 的示例(一旦安装):

Set WshShell = VBA.CreateObject("WScript.Shell")
WshShell.Run "c:\Program Files\7-Zip\7z.exe " & _
    "a -tzip myarchive.zip file.dat file2.txt file3.png", 1, True

此示例将三个文件压缩到一个存档中,而您想从存档中提取文件...只需在文档中查找相应的命令即可。

请注意,在执行 7-Zip 时会弹出一个命令窗口,您会在其中看到一个 % 进度指示器。如果您希望这个指标出现在其他地方,那么您可以通过一些独创性将标准输出通过管道传输到其他相关位置。

【讨论】:

  • 感谢您的回答。有什么方法可以在没有安装 7-Zip 的情况下提取 zip?
  • Windows XP 没有本机 zip 实用程序。我相信更高版本的 Windows 可能会有一些东西,但显然它真的很难使用。我记得在网上搜索了几个小时并且不满意。无论如何,几乎每个人都使用 7-Zip。
猜你喜欢
  • 2021-03-07
  • 2016-01-15
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多