特别感谢你们,以下是一个完整的函数,作为你们提供的方法的总结:
- (defun [b]DwgFileStatus [/b](DwgName / *dwg* *folder* *name* *dwl* *ret* *f*)
- (if (setq *dwg* (findfile DwgName))
- (progn
- (setq *folder* (vl-filename-directory *dwg*))
- (setq *name* (vl-filename-base *dwg*))
- (setq *dwl* (findfile (strcat *folder* "\" *name* ".dwl")))
- )
- )
- (setq *ret*
- (cond
- ( (not *dwg*)
- 'NoSuchFile
- )
- ( (setq *f* (open *dwg* "a"))
- 'Editable
- )
- ( (not *dwl*)
- 'ReadOnly
- )
- ( (setq *f* (open *dwl* "a"))
- 'EditableAfterCrash
- )
- ( (not *f*)
- 'InUse
- )
- ( T
- 'NotProspected
- )
- )
- )
- (if *f* (close *f*))
- *ret*
- )
|