如何创建一个zip文件,当用户解压缩时会打开一个url?

时间:2011-07-31 07:16:09

标签: vb.net zip unzip

我想在VB.Net中创建一个小应用程序,它将压缩文件,以便当用户解压缩此文件时,将在用户的默认浏览器中打开一个URL。

有没有办法创建这样的文件?

由于

修改

  

我们可以在解压后打开.ZIP档案中的任何文件吗?   实际上,在我的项目中,我正在尝试构建zip文件,它将在解压缩后打开其帮助文件(位于特定网站)。对于我的项目,此功能必须

4 个答案:

答案 0 :(得分:3)

没有。据我所知,在标准ZIP文件中提取时无法打开URL。

答案 1 :(得分:2)

您可以考虑创建一个self-extracting archive或一个自定义exe,它将提取/解压缩嵌入文件并执行代码。虽然这不是典型的“.zip”文件,但它仍然可以满足您对此项目的要求。我没有任何资源,但一点点谷歌搜索可能会出现一些例子。

答案 2 :(得分:0)

不,没有办法做到这一点。

答案 3 :(得分:0)

DotNetZip支持创建可在提取后运行任何程序的自解压存档。该程序可以“打开刚刚解压缩的文件”,也可以“打开机器上的任何程序”,也可以“运行一个提取文件之一的EXE”等。这可以用于生成一个SFX,在提取后打开一个URL。

在VB.NET中,生成打开URL的自提取器文件的代码如下:

Using zip As New Ionic.Zip.ZipFile()

    zip.AddEntry("Entry1.txt", "This is the content")

    Dim opt As New Ionic.Zip.SelfExtractorSaveOptions()
    opt.Flavor = Ionic.Zip.SelfExtractorFlavor.WinFormsApplication
    opt.IconFile = "zippedFile.ico"
    opt.Description = "This is a self-extracting archive created by a vb.net app"
    opt.Copyright = "Copyright (c) 2011 Cheeso"
    opt.ProductVersion = "4.3.2"
    opt.ProductName = "SomethingFun"
    opt.SfxExeWindowTitle = "SomethingFun extractor"
    opt.PostExtractCommandLine = "http://news.google.com"  ' <<<-- your URL here
    zip.SaveSelfExtractor("SOverflow.exe", opt)
End Using

上面的代码生成了一个名为“SOverflow.exe”的EXE,它依赖于.NET 2.0。 Windows资源管理器中提供的属性表公开了上述选项中指定的一些设置。它看起来像这样:

enter image description here

运行SOverflow.exe时,它看起来像这样:

enter image description here

当用户单击“Extract”时,将解压缩所有文件,然后运行命令“http://news.google.com”,将该URL弹出到默认浏览器中。

此示例显示存档中的单个条目以及命令的HTTP URL,但您可以将许多条目打包到自解压存档中,并运行任意任意命令。

自提取器(SOverflow.exe)作为普通的zip文件是“可打开的” - 只需将其重命名为SOverflow.zip即可浏览Windows资源管理器中的内容,在Winzip中提取它等等。作为zip文件,您将失去自解压行为,包括“提取后运行命令”部分。

DotNetZip是一个免费的图书馆。