使用带有vb2010的7z将文件解压缩到%temp%

时间:2012-11-15 04:19:05

标签: .net vb.net visual-studio-2010 7zip

这是我尝试过的修订之一。我无法弄清楚7zipsharp的事情。

    Dim Arg1 As String = "x"
    Dim Zip As String = "apps\dat\sb.7z"
    Dim path As String = "-o%TEMP%\Updates\sb"
    Process.Start(
"apps\dat\7z.exe",
Arg1 + path + Zip)

我还希望它能在执行代码之前等到提取完毕。

这是目前正在使用的脚本。

@setlocal enableextensions
@pushd "%~dp0"   ::This is so the script doesn't default to %windir%
@start "" /wait 7z.exe X -o%temp%\dat\sb -y sb.7z
::@pause
@start "" /wait /D"%temp%\dat\sb" "setup.exe" %~dp0
@rd /s/q %temp%\dat

目前我正在使用button_click访问此脚本,但我想摆脱脚本。它最好提取到临时目录。

** * ** * ** * 的* 更新 * ** * ** * ** * *** 这是我使用的结束代码。

    Dim temp As String = System.Environment.GetEnvironmentVariable("TEMP")
    Dim Arg1 As String = "x -o"
    Dim Zip As String = "apps\dat\sb.7z -y"
    Dim path As String = temp + "\Updates\sb"
    Process.Start("apps\dat\7z.exe", Arg1 + path + " " + Zip)

我将-o移动到Arg1并删除了空格,因此它会将-o%temp%\ Updates \ SB读取到系统中。

1 个答案:

答案 0 :(得分:1)

重写代码:

Dim Arg1 As String = "x"
Dim Zip As String = "apps\dat\sb.7z"
Dim path As String = "-o%TEMP%\Updates\sb"
Process.Start("apps\dat\7z.exe",Arg1 + " " + path + " " + Zip)
p.WaitForExit();
  • 您忘记在参数之间包含空格
  • 您可以调用WaitForExit()函数来等待进程完成
  • 解压缩后,您可以像7zip
  • 一样启动setup.exe