ASP在線執行WinRAR壓縮文檔
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
1.要壓中文檔名,須下載中文版WinRAR,安裝后,再將其中的rar.exe復制出來
2.網絡執行,必須將rar.exe與被壓縮的文件(或文件夾)置于相同目錄下 (網絡執行壓縮不支持相對路徑,如果使用絕對路徑,壓出來的文檔,會按照絕對路徑一層一層壓進去) 3.下載并注冊,在線執行Server端外部程序的組件:ASPEXEC(免費組件) 4.透過ASPEXEC執行→bat檔→rar.exe(如此才能壓縮出正確路徑的壓縮檔) 例:壓縮d:\tmp\tmp_a\tmp_b資料夾中的所有子資料夾及檔案(含長中文檔名看看) 方法: 1.將rar.exe復制到d:\tmp\tmp_a\下,也就是與tmp_b同層目錄 2.建立bat檔放在哪里無所謂,就放在D:\addzip.bat(addzip.bat內容如下), D: cd tmp\tmp_a rar.exe a -r tmp_b.zip tmp_b 3.ASP程序碼 '利用ASPExec組件執行壓縮------------------------------------- set Executor = Server.CreateObject("ASPExec.Execute") Executor.Application = "d:\addzip.bat" strResult = Executor.ExecuteDosApp Response.Write "<pre>" & strResult & "</pre>" Set Executor = Nothing PS:正常寫法應該是如下,但不支持相對路徑,而如果使用絕對路徑,則壓縮檔內容,就會把所有路徑資料夾都包進去。 '利用ASPExec組件執行壓縮------------------------------------- set Executor = Server.CreateObject("ASPExec.Execute") Executor.Application = "d:\tmp\tmpa\rar.exe" Executor.Parameters = " a -r tmp_b.zip tmp_b" (使用相對路徑,完全無法執行) Executor.Parameters = " a -r d:\tmp\tmp_a\tmp_b\tmp_b.zip d:\tmp\tmp_a\tmp_b\tmp_b"(使用絕對路徑,可以執行,但多了tmp及tmp_a空資料夾) strResult = Executor.ExecuteDosApp Response.Write "<pre>" & strResult & "</pre>" Set Executor = Nothing ============================================================ 補充說明: 今日測試在線壓縮時,遇到被壓縮的文件夾中又包含另一個.zip檔,結果可以壓縮成功,但無法解壓,總是出現「多重壓縮損毀...」的問題。 后來將壓縮檔改成rar格式,就順利解決,所以上面范例的bat檔內容建議 改成:(tmp_b.zip-->tmp_b.rar ) D: cd tmp\tmp_a rar.exe a -r tmp_b.rar tmp_b 該文章在 2011/4/23 0:01:40 編輯過 |
關鍵字查詢
相關文章
正在查詢... |