2008-12-12 205 views
0

我实际上正在尝试启动winzip和压缩文件夹的过程。这是我在vb中使用下面的代码。从Web应用程序启动进程

Dim startInfo As New System.Diagnostics.ProcessStartInfo 
Dim pStart As New System.Diagnostics.Process 
Dim tempFileName As String 
Try 
    startInfo = New System.Diagnostics.ProcessStartInfo(_ 
    "c:\Program Files\WinZip\WINZIP32.EXE") 
    startInfo.Arguments = " -a -r ""c:\test.zip"" c:\test" 
    startInfo.UseShellExecute = False 
    startInfo.WindowStyle = Diagnostics.ProcessWindowStyle.Normal 

    pStart.StartInfo = startInfo 
    'startInfo.WorkingDirectory = "c:\Program Files\WinZip" 
    'startInfo.FileName = "WINZIP32.EXE" 
    pStart.Start() 
    pStart.WaitForExit() 

Catch ex As Exception 
    Throw 
End Try 

这工作正常时,它放在一个Windows应用程序的按钮单击事件。但是,当我在web应用程序的按钮单击事件中完成同样的操作时,我可以看到该过程在机器的任务管理器中启动。但它不拉链,也没有关闭应用程序,也不会弹出它的WinZip用户界面......但是在很少的机器中,这样做确实很好。在大多数机器我面临的问题,也能够一贯地重现问题...

但类似的事情,如果我尝试使用7z zip,它确实工作正常形成一个web应用程序本身...

请让我知道是否有任何解决方案或解决方法该...

感谢 维诺德T.

回答

1

我相信.Net框架内置了zip功能。我会尝试先使用这些。由于Web服务器上的权限,您的zip程序可能未运行。

编辑

我只是检查,并似乎在System.IO.Compression有限的ZIP支持。但根据this discussion,它可能不是你所需要的。然而,该讨论提到了一篇名为“Decompress Zip files with Windows Shell API and C#”的文章。

+0

在框架1.14中是否存在? – Vinodtiru 2008-12-15 04:49:36

0

它可能是与该IIS作为运行的用户;尝试更改应用程序池以运行您的身份以查看它是否有效。当然,winzip是一个用户界面工具 - 使用命令行压缩工具可能会更好...... pkzip ;-p

就我个人而言,我会考虑使用#ZipLib而不是 - 这将允许您操纵zip文件在托管代码中。

相关问题