You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AutoLisp获取AppData路径及AppData.ini相关问题咨询

问题解答

1. 插件正确访问AppData目录的方法

手动拼接C:\Users\[用户名]\AppData的写法从根上就有兼容性问题:Windows域账号、微软账号登录时,用户文件夹名和登录用户名不一致是非常普遍的情况,再加上市面不少用户会把用户目录迁移到非C盘,硬编码拼接路径必然会出现定位失败。
直接用以下两种方案即可,覆盖所有DraftSight版本和Windows系统环境:

  • 通用环境变量方案:直接读Windows系统内置的APPDATA环境变量,返回值就是当前登录用户的Roaming目录绝对路径,完全不需要拼接用户名,不受用户目录位置、账号类型、系统语言影响。调用示例:
;; 获取DraftSight漫游配置根路径
(setq ds-roaming-path (strcat (getenv "APPDATA") "\\DraftSight\\"))
  • DraftSight原生方案:直接读DraftSight内置系统变量ROAMABLEROOTPREFIX,返回值就是当前用户的DraftSight配置目录绝对路径,连路径后缀都不用额外拼接,是适配性最好的写法。调用示例:
(setq ds-config-path (getvar "ROAMABLEROOTPREFIX"))

拿到路径后先通过vl-file-directory-p判断目录是否存在,不存在就用vl-mkdir递归创建目录,再做配置文件读写,避免IO报错。

2. AppData.ini的存放位置与可用性说明

  • 调用setcfg/getcfg返回nil是正常情况:这两个是AutoCAD早期版本的遗留接口,DraftSight只做了语法层面的兼容,根本没实现对应的配置读写逻辑,开发DraftSight插件不要依赖这两个函数。
  • AppData.ini是AutoCAD 2002及更早版本用的配置存储文件,默认放在对应版本AutoCAD的安装根目录下,从AutoCAD 2004开始就已经改用注册表存配置,这个文件已经废弃20年以上,DraftSight从来没用过这个文件存配置,不需要找。

内容的提问来源于stack exchange,提问作者G Beck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:12:13