EDA365电子论坛网

标题: 请教:如何像这样知道一个文件的打开状态,从而弹窗让操作人员关闭文件 [打印本页]

作者: gogogo冲冲冲    时间: 2025-3-1 19:34
标题: 请教:如何像这样知道一个文件的打开状态,从而弹窗让操作人员关闭文件
本帖最后由 gogogo冲冲冲 于 2025-3-1 19:48 编辑

如果已经导出了一个文件被打开了,此时想导出相同文件名的操作不能进行,用这个axlOSFileMove和deleteFile都不能操作此打开的文件,


如何像这样知道一个文件的打开状态,从而弹窗让操作人员关闭该文件文件,从而能再次进行文件操作。
或者有其他方式,后台关掉此文件?


作者: ashnoer    时间: 2025-3-1 21:15
赋值给变量进行判断,nil就弹窗提示
作者: aarom    时间: 2025-3-2 05:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: gogogo冲冲冲    时间: 2025-3-2 15:06
@ashnoer   @aarom 谢谢两位热心朋友。我这样进行判定,虽然程序能跑了,是否是最好的方式呢?

_FileExist = nil;文件存在与否的变量,初始为nil,文件不存在
      (if isFile(strcat(axlCurrentDesign() "_Highlight" ".rpt")) then ;判定语句,为真t,文件存在
         (if _FileExist = (axlOSFileMove(strcat(axlCurrentDesign() "_Highlight" ".rpt") strcat(axlCurrentDesign() "_Highlight" ".rpt,1")) == nil
             && axlUIConfirm(strcat(axlCurrentDesign() "_Highlight" ".rpt"  "\316\304\274\376\322\321\264\346\324\332\262\242\264\362\277\252\243\254\307\353\271\330\261\325\272\363\326\330\312\324\243\241") 'error))
                              ;文件就算存在,再判定是否被使用(这里用了axlOSFileMove函数间接判定,nil表示不能移动,说明文件被使用了,同时同时同时
                              ;弹窗“确认关闭文件”为t,操作者去关闭文件。此时两个条件&&同时为t,执行then语句。
             then
         return(_FileExist);程序不执行后续,将返回。
         );end if
         else      
             axlOSFileMove(strcat(axlCurrentDesign() "_Highlight" ".rpt") strcat(axlCurrentDesign() "_Highlight" ".rpt,1"))
     );end if

作者: aarom    时间: 2025-3-3 13:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: w_w    时间: 2025-3-3 18:51
导出的TXT文件貌似能直接覆盖
作者: gogogo冲冲冲    时间: 2025-3-7 21:00
aarom 发表于 2025-03-03 13:13:34
我沒去試.看了一下.

1. 這只能通知自己.

2.有關移動到,1的檔案.

         else      
             axlOSFileMove(strcat(axlCurrentDesign() "_Highlight" ".rpt") strcat(axlCurrentDesign() "_Highlight" ".rpt,1"))

走老路了, 沒偵測 strcat(axlCurrentDesign() "_Highlight" ".rpt,1") 檔案的存在, 白做了. (有檔案在 程式就nil.)
這要看你 sop 要做到 ,n , 假如只到,1 就先刪檔再移, 假如是要到,n 要使用迴圈了.


谢谢






欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2