LISP创建隐藏的多级文件夹,求修正!
本帖最后由 潇湘飞雨 于 2021-5-22 15:18 编辑;请教如何在C盘创建一个默认隐藏的文件夹,文件夹有多级,例如C:\bos\dgd\dsg
;出错提示输入的字符有缺陷!
;
; -- VxMakeDirectory ;
; Creates the specified directory(ies). ;
; Copyright: ;
; ?001 MENZI ENGINEERING GmbH, Switzerland ;
; Arguments : ;
; Dir = Folder to create, e.g. "C:\\Temp\\MyTemp\\AllScrap" ;
; Return : ;
; > T VxMakeDirectory succeed ;
; Nil Error on creating directory(ies) ;
; Notes: ;
; - Requires ScrRun.dll (see also notes at top of page). ;
;
;
;USAGE : (VXMAKEDIRECTORY "C:\\Temp\\MyTemp\\AllScrap")
(defun (VXMAKEDIRECTORY
(DIR / CURDIR DRVOBJ FILSYS RETVAL TMPLST TMPVAL)
(setq FILSYS (vlax-create-object "Scripting.FileSystemObject")
CURDIR (vl-string-right-trim "\" (vl-string-right-trim "/" DIR))
)
(while (/= (setq TMPVAL (vl-filename-directory CURDIR)) CURDIR)
(setq TMPLST (cons TMPVAL TMPLST) CURDIR TMPVAL
)
)
(setq RETVAL (cond
((= (vlax-invoke FILSYS 'DRIVEEXISTS TMPVAL) 0) NIL)
((setq DRVOBJ (vlax-invoke FILSYS 'GETDRIVE TMPVAL))
(cond
((= (vlax-get DRVOBJ 'ISREADY) 0) NIL)
(t (foreach MEMB TMPLST
(cond
((= (vlax-invoke FILSYS 'FOLDEREXISTS MEMB) -1))
((vlax-invoke FILSYS 'CREATEFOLDER MEMB)) )
)
(cond
((= (vlax-invoke FILSYS 'FOLDEREXISTS DIR) -1))
((vlax-invoke FILSYS 'CREATEFOLDER DIR) t)
(t NIL)
)
)
)
)
)
)
(if DRVOBJ
(vlax-release-object DRVOBJ)
)
(vlax-release-object FILSYS)
RETVAL )
这是论坛里面找到源码,感谢龙龙仔!
(vl-string-right-trim "\" (vl-string-right-trim "/" DIR))
这句少了一个反斜杠 tryhi 发表于 2021-5-22 11:14
(vl-string-right-trim "\" (vl-string-right-trim "/" DIR))
这句少了一个反斜杠
OK已经解决,十分感谢!!! 出错提示输入的字符有缺陷
页:
[1]