明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 739|回复: 8

[函数] 转载:直接解压ZIP文件

  [复制链接]
发表于 2025-10-20 22:18:51 | 显示全部楼层 |阅读模式
本帖最后由 yanshengjiang 于 2025-10-20 22:20 编辑

https://www.theswamp.org/index.php?topic=58631.0

  1. (Defun EXTRACTZIP (ZIP DIR DEL / FSO SRC TAR)
  2.   (and (null DIR)
  3.        (setq DIR (vl-filename-mktemp))
  4.        (vl-mkdir DIR)
  5.   )
  6.   (and (findfile ZIP)
  7.        (vl-file-directory-p DIR)
  8.        (setq FSO (vlax-create-object "Shell.Application")
  9.              TAR (vlax-invoke-method FSO "NameSpace" DIR)
  10.        )
  11.        (setq SRC (vlax-invoke-method FSO "NameSpace" ZIP)
  12.              SRC (vlax-invoke SRC "Items")
  13.        )
  14.        (vlax-invoke-method TAR "CopyHere" SRC 20)
  15.   )
  16.   (and DEL (vl-file-delete ZIP))
  17.   (and FSO (vlax-release-object FSO))
  18. )




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
Bao_lai + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 2025-10-21 16:45:46 | 显示全部楼层
rar不是windows内置支持的压缩格式,必须用7z或者inwrar等软件解压。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-10-20 22:28:42 | 显示全部楼层
AI给了一段解压带密码的  居然成功了  不敢相信

  1. (Defun EXTRACTZIP (ZIP DIR DEL PASSWD / cmd ret)
  2.   ;; 处理和准备目录(这部分逻辑与原代码相同)
  3.   (and (null DIR)
  4.        (setq DIR (vl-filename-mktemp))
  5.        (vl-mkdir DIR)
  6.   )
  7.   ;; 核心:构建并执行命令行
  8.   (if (and (findfile ZIP) (vl-file-directory-p DIR))
  9.     (progn
  10.       ;; 构建7z命令字符串
  11.       (setq cmd (strcat "7z x \""
  12.                         (findfile ZIP)  ; 确保使用完整路径
  13.                         "\" -p" PASSWD  ; -p 参数指定密码
  14.                         " -o\"" DIR "\" -y"  ; -o 指定输出目录,-y 表示全部同意
  15.              )
  16.       )
  17.       ;; 执行命令。返回值ret为0通常表示成功
  18.       (setq ret (vlax-invoke-method (vlax-create-object "WScript.Shell") "Run" cmd 0 :vlax-true))
  19.       
  20.       (if (= ret 0)
  21.         (princ (strcat "\n解压成功!文件位于: " DIR))
  22.         (princ "\n解压失败!请检查密码是否正确,或ZIP文件是否损坏。")
  23.       )
  24.       ;; 根据DEL参数决定是否删除原ZIP文件
  25.       (and DEL (vl-file-delete ZIP))
  26.     )
  27.     (princ "\n错误:未找到ZIP文件或目标目录无效。")
  28.   )
  29.   (princ) ; 静默退出
  30. )
  31. ​使用此方法前的准备工作:​​

  32. ​安装7-Zip​:确保您的计算机上安装了7-Zip。

  33. ​确认命令可用​:在Windows的命令提示符(CMD)中直接输入7z,如果能看到帮助信息,说明可以直接调用。如果不行,可能需要提供7z.exe的完整路径(例如"C:\\Program Files\\7-Zip\\7z.exe")来替换上面命令中的7z。

  34. 改进后,您可以这样调用函数(假设密码为mypassword):

  35. autolisp
  36. 复制
  37. (EXTRACTZIP "C:\\example.zip" "D:\\output" nil "mypassword")
回复 支持 反对

使用道具 举报

发表于 2025-10-20 22:39:48 | 显示全部楼层
很好,反过来压缩文件可好?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-10-20 22:45:42 | 显示全部楼层
Bao_lai 发表于 2025-10-20 22:39
很好,反过来压缩文件可好?

诚然,deepseek一遍过

(defun ZIPFOLDER-7Z (sourceFolder targetZip / cmd ret)
  ;; 构建7z命令字符串。注意:请根据您电脑上7z的实际路径调整
  (setq cmd (strcat
              "7z a -tzip \""   ; a: 添加文件到压缩包 -tzip: 指定为zip格式
              targetZip
              "\" \""
              sourceFolder
              "\\*\" -r"         ; 压缩源文件夹下的所有内容(-r表示递归子目录)
            )
  )
  ;; 执行命令
  (setq ret (vlax-invoke-method (vlax-create-object "WScript.Shell") "Run" cmd 0 :vlax-true))
  (if (= ret 0)
    (princ (strcat "\n使用7z压缩成功!文件位于: " targetZip))
    (princ "\n压缩失败,请检查7z是否安装或命令是否正确。")
  )
  (princ)
)


(ZIPFOLDER-7Z "C:\\标准DLTB转CASS模板_FME工具(yan修改)2024-07-15" "D:\\MyProject.zip")
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-10-20 23:21:38 | 显示全部楼层
有没有,未安装7z的试试

使用此方法前,请确保您的计算机上已安装了 7-Zip软件,并且其命令行工具 7z.exe的路径已添加到系统的环境变量PATH中。如果没有,需要在命令中指定完整路径,例如:

"C:\\Program Files\\7-Zip\\7z.exe" a ...。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

发表于 2025-10-21 16:31:03 | 显示全部楼层
rar文件好像不能解压呢  即使后缀改为zip也不行
回复 支持 反对

使用道具 举报

发表于 2025-10-21 16:54:35 | 显示全部楼层
kozmosovia 发表于 2025-10-21 16:45
rar不是windows内置支持的压缩格式,必须用7z或者inwrar等软件解压。

好的  谢谢!
回复 支持 反对

使用道具 举报

发表于 2025-10-28 16:56:21 | 显示全部楼层
跑过来瞅瞅
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-11-10 04:04 , Processed in 0.174761 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表