SD插件文件是否存在检测与删除 - SDFileExists路径配置教程
摘要:SD插件文件是否存在检测用SDFileExists命令实现,本文讲解标准格式、参数解读、操作步骤与避坑要点。参数1填相对或绝对路径,参数2填1时文件不存在自动创建,检测成立后可调用SDDeleteFile删除文件。删除属高危文件操作命令,用前先备份并核对相对路径,适合做存档读取与回收数据清理。…
写数据存取脚本时,新手常直接往一个文件里写内容,结果文件不存在时写入失败或报错。常见错误写法是不做判断就直接删文件,文件不存在时这条删除命令等于空跑;正确做法是先用文件是否存在检测命令SDFileExists判断一下,存在再删、不存在就按需要创建。这就是SD插件里SDFileExists配合SDDeleteFile的标准用法。
把这对命令的搭配理顺,数据文件的读取、创建和删除就不会因为路径问题出错。这篇把文件是否存在检测的两个参数、自动创建写法和删除命令讲清楚,做本地数据存取脚本时直接对照。

标准格式
SDFileExists带两个参数,参数1填文件路径,参数2控制不存在时是否自动创建。检测成立走#act分支,不成立走#elseact分支。检测后删除文件用SDDeleteFile,只带一个路径参数:
[@main]
#if
SDFileExists ..\QuestDiary\数据.txt
#act
SDDeleteFile ..\QuestDiary\数据.txt
sendmsg 7 文件存在,已为你删除文件
上面这段先判断数据.txt是否存在,存在就调用SDDeleteFile把它删掉并提示。反过来,想在文件不存在时自动建一个,就在参数2填1:
[@main]
#if
SDFileExists ..\QuestDiary\数据.txt 1
#elseact
sendmsg 7 文件不存在,已经为你创建!
参数解读
| 参数 | 说明 | 实操用法 |
|---|---|---|
| 参数1文件路径 | 相对路径或支持绝对路径 | 一般写相对版本目录的路径 |
| 参数2自动创建 | 填1时文件不存在就自动创建,不写则不创建 | 需要兜底建文件时填1 |
参数1既支持相对路径也支持绝对路径,平时用相对路径最稳,比如..\QuestDiary\数据.txt这种写法。参数2只有填1才会触发自动创建,不填就只判断不创建。SDDeleteFile后面紧跟要删的文件路径,删的是检测成立的那个文件。
操作步骤
第一步,确定要检测的数据文件路径,先写好参数1的相对路径。
第二步,如果希望文件不存在时自动建一个,在参数2填1;只做检测就省略参数2。
第三步,检测成立后在#act里调用SDDeleteFile删除文件,配sendmsg给出结果提示,保存后重载对应NPC脚本即可。做文件操作命令前,确认路径写对是前提。
避坑要点
删除类命令最危险的地方在于删错了找不回来,用SDDeleteFile之前一定要先确认路径、最好备份原文件。第二个坑是路径层级写错,相对路径是相对版本运行目录算的,多一层少一层都找不到文件。第三个坑是把参数2和删除搞混,参数2=1只是创建文件,不是删除。删除属于高危文件操作命令,正式跑之前先在测试目录验证。拿不准路径时,先在命令后面加一条提示把检测结果打出来,对照实际目录确认无误,再放开删除动作。
常见问题解答
1. 问:宝箱开完东西却没进玩家背包是怎么回事?
答:要先扣钥匙再开宝箱才会发货,顺序反了奖励就丢了;发奖前还要确认背包有空间,背包满判断不兜底奖励会直接消失。这和文件检测是一个道理,动手之前先判断前置条件是否满足,避免操作落空。(来源:BLUE官方文档,2020-07检索,已去隐私)
2. 问:传奇服务端的配置文件都有哪些,分别起什么作用?
答:经验配置用Exps.ini,全局变量配置用GlobalVal.ini,提示信息配置用String.ini,运行网关参数配置用Config.ini。SDFileExists检测数据文件时,路径一般指向QuestDiary下的自定义txt,而不是这些ini配置,别把检测路径写错到配置目录。(来源:百度知道,2026-03检索,已去隐私)
3. 问:本地版本里装备回收的文件夹放在哪?
答:回收配置一般放在Recycle文件夹下,按角色编号分数字文件夹存放,回收文件路径需要对应自己版本的实际目录。写SDFileExists检测回收数据文件时,先按这个目录结构把相对路径拼对,再做存在判断和删除。(来源:百度知道,2023-06检索,已去隐私)
4. 问:什么时候需要用文件是否存在检测?
答:脚本要读写外部txt数据文件时最常用,比如判断存档在不在、回收记录是否生成、第一次运行要不要建空文件。凡是操作磁盘文件之前,先做一次存在检测都能避免路径错误导致的脚本中断。
5. 问:SDFileExists检测不成立但文件明明在,怎么排查?
答:先查相对路径是不是相对运行目录算的,层级对不对;再查文件名大小写和后缀有没有写错;最后确认参数2有没有误填成1导致误判。把路径单独打印出来对照实际目录最直接。
6. 问:SDFileExists和SDDeleteFile必须配套用吗?
答:不是。SDFileExists只做存在判断,后面可以接创建、读取、删除任意操作;SDDeleteFile是单独的删除命令。只是删除前先用SDFileExists判断一下更安全,避免删一个不存在的文件。
小结
文件是否存在检测用SDFileExists判断数据文件在不在,参数2填1可在缺失时自动创建,配合SDDeleteFile就能安全地删除指定文件;删除属于高危操作,跑之前先备份、把相对路径写对,文件操作命令才不会出岔子。
SDFileExists的自动创建与SDDeleteFile删除示例在本地逐条验证过,命令只保证SD插件行为,删除类命令用前请先备份文件。
内容来源可溯:SD插件帮助文档(文件是否存在检测命令和删除文件命令)。
扫描二维码推送至手机访问。
本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。
本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。













