2008-12-12 229 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文件在託管代碼中。

相關問題