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
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
文件预览-文档在线转换-wps在线预览-文件预览在线查看
office文件及文档在线预览 提供office在线预览及PDF在线预览服务,支持Word文档在线预览、Excel在线预览、PowerPoint在线预览、WPS等Office文件在线预览,支持所有浏览器及移动设备Mobile预览,无需安装ActiveX控件,无需客户端部署即可实现办公文档在线预览。
在线预览 office365 在线Office 篇七:网页在线预览编辑 Office在线预览 word在线预览 -
Linux压缩和解压文件
Linux压缩和解压文件
压缩文件 7z linux 解压 -
ASP自动解压RAR文件
其实想实现这种功能很简单,首先要上传一个RAR的解压程序,就是RAR自己的解压程序,
asp cmd shell windows 上传 -
Node rar压缩/解压文件
暂时未发现node有好
node rar压缩/解压 压缩文件 回调函数 解压文件 -
asp.net利用RAR实现文件压缩解压缩【月儿原创】
asp.net利用
解压缩 html javascript 服务器 服务器端