当前位置:首页 > M2插件 > SD插件 > 正文内容

SD插件文件是否存在检测与删除 - SDFileExists路径配置教程

M2GM2026-10-21SD插件40
摘要:SD插件文件是否存在检测用SDFileExists命令实现,本文讲解标准格式、参数解读、操作步骤与避坑要点。参数1填相对或绝对路径,参数2填1时文件不存在自动创建,检测成立后可调用SDDeleteFile删除文件。删除属高危文件操作命令,用前先备份并核对相对路径,适合做存档读取与回收数据清理。…
[TOCM]

写数据存取脚本时,新手常直接往一个文件里写内容,结果文件不存在时写入失败或报错。常见错误写法是不做判断就直接删文件,文件不存在时这条删除命令等于空跑;正确做法是先用文件是否存在检测命令SDFileExists判断一下,存在再删、不存在就按需要创建。这就是SD插件里SDFileExists配合SDDeleteFile的标准用法。

把这对命令的搭配理顺,数据文件的读取、创建和删除就不会因为路径问题出错。这篇把文件是否存在检测的两个参数、自动创建写法和删除命令讲清楚,做本地数据存取脚本时直接对照。

文件是否存在检测配图 - M2GM

标准格式

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发布,如需转载请注明出处。如有侵权请联系站长删除。

本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。

本文链接:https://www.m2gm.com/plug/sd/sd-fileexists/

分享给朋友:

相关文章

BLUE引擎WebBrowser怎么使用?NPC命令打开网站脚本教程

BLUE引擎WebBrowser怎么使用?NPC命令打开网站脚本教程

WebBrowser是BLUE引擎由NPC在游戏客户端内直接打开网页的命令,后面跟完整网址,玩家点对话链接即在登录器内置浏览器窗口加载,不必切外部IE。本文给出[@main]链接跳[@baidu]段再写WebBrowser地址的配置步骤,并排查HTTPS白屏、段名对不上、改完不生效三类问题。…

SD插件SDBDelMonHp切割命令脚本教程 - 宝宝切割必查的参数细节

SD插件SDBDelMonHp切割命令脚本教程 - 宝宝切割必查的参数细节

SD插件宝宝切割教程:命令SDBDelMonHp六个参数,参数2选固定值或百分比切割,参数4控制切割对象只切怪物,参数5设百分比分母,含报错排查与三阶案例,适配SD插件脚本学习,仅供单机本地调试。…

LFM2引擎TAKE怎么收物品?TAKE收回背包物品脚本教程

LFM2引擎TAKE怎么收物品?TAKE收回背包物品脚本教程

LFM2引擎TAKE教程:两参数物品名数量;先CHECKITEM检测数量再TAKE;物品名要和Stditem.db一致;数量不够静默失败;TAKE和TAKEW区别是收背包vs收身上,附避坑与实操步骤。…

GOM引擎怎么查行会人数?GOM获取指定行会人员数量脚本教程

GOM引擎怎么查行会人数?GOM获取指定行会人员数量脚本教程

GOM引擎GuildMemberAll教程:两参数N变量行会名;查的是在线人数不是总人数;行会名要一字不差;行会不存在返回0;一次只查一个行会,附避坑与实操步骤。…

LFM2引擎NPC命令捡物怎么同步?NPC命令捡物同步内挂物品脚本教程

LFM2引擎NPC命令捡物怎么同步?NPC命令捡物同步内挂物品脚本教程

LFM2引擎NPC捡物同步教程:一个参数物品名;必须和Stditem.db原名一致;玩家要开内挂自动捡;只对当前玩家生效;下线同步重置,附避坑与实操步骤。…

大秦插件写入键值配置方法 - 哈希键值存储实战案例

大秦插件写入键值配置方法 - 哈希键值存储实战案例

写入键值命令DQHashTableCreate后接标识字符串和存储内容两个参数;标识字符串不区分大小写作为记录查找键;参数2存储内容自定义;写入后用读取查找删除同族命令闭环操作;重复写入会覆盖旧值;常用于活动状态跨脚本共享、玩家临时记录、开关标记管理;标识建议加用途前缀避免空格特殊符号。…

SD插件修改宝宝属性SDChangeSlaveAbility怎么用?宝宝属性叠加教程

SD插件修改宝宝属性SDChangeSlaveAbility怎么用?宝宝属性叠加教程

SD插件修改宝宝属性教程:命令SDChangeSlaveAbility三个参数,属性类型编号0到21覆盖血量蓝量防御攻击速度外观,all代表所有宝宝,叠加机制不可覆盖,含三阶案例与报错排查,适配SD插件脚本学习,仅供单机本地调试。…

BLUE引擎播放WAV文件 - 游戏音效脚本教程

BLUE引擎播放WAV文件 - 游戏音效脚本教程

播放WAV文件是BLUE引擎里用来播放声音文件的NPC命令,命令本体为PLAYSOUND,后面依次跟文件名、循环参数与播放范围,循环参数填0不循环、填1循环,播放范围可填ALL、GUILD、地图名或留空。本文按官方CHM帮助文档整理命令格式与参数含义,给出在脚本里插入播放命令的实操步骤,并梳理声音不播放的原因与问答。…