我想在VB.Net中创建一个小应用程序,它将压缩文件,以便当用户解压缩此文件时,将在用户的默认浏览器中打开一个URL。
有没有办法创建这样的文件?
由于
修改
我们可以在解压后打开.ZIP档案中的任何文件吗? 实际上,在我的项目中,我正在尝试构建zip文件,它将在解压缩后打开其帮助文件(位于特定网站)。对于我的项目,此功能必须。
答案 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资源管理器中提供的属性表公开了上述选项中指定的一些设置。它看起来像这样:
运行SOverflow.exe时,它看起来像这样:
当用户单击“Extract”时,将解压缩所有文件,然后运行命令“http://news.google.com”,将该URL弹出到默认浏览器中。
此示例显示存档中的单个条目以及命令的HTTP URL,但您可以将许多条目打包到自解压存档中,并运行任意任意命令。
自提取器(SOverflow.exe)作为普通的zip文件是“可打开的” - 只需将其重命名为SOverflow.zip即可浏览Windows资源管理器中的内容,在Winzip中提取它等等。作为zip文件,您将失去自解压行为,包括“提取后运行命令”部分。
DotNetZip是一个免费的图书馆。