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