a65306805 发表于 2005-3-31 11:28:00

[求助]怎样用LISP创建文件夹

用LISP怎样创建文件夹,请指教,谢谢!

meflying 发表于 2005-3-31 13:06:00

(vl-mkdir "C:\\TMP")


你学得多了就明白了,有些东西是需要多方面知识的,不是哪本书能讲全的,,,就象4楼的,你只学LISP,学到死可能都不会,还需要知道其它应用程序对象方面的知识

流动的清泉 发表于 2021-4-5 21:54:13

院长牛逼,教人的时候还不忘鞭策下人

风子 发表于 2005-3-31 11:32:00

你用DosLib的dos_mkdir 即可

a65306805 发表于 2005-3-31 11:46:00

谢谢

谢谢!!

龙龙仔 发表于 2005-3-31 12:27:00

;;创建文件或文件夹
;;1、能否用lisp创建档夹。
;;2、lisp创建的档属性能否以隐藏形式建立。
;;By LUCAS(龙龙仔)
;;隐藏形式创建档夹
;;USAGE: (MAKEFOLDER "C:\\TMP")(defun MAKEFOLDER (FNAME / SYS FOLDER)
   (if (not (findfile FNAME))
       (progn
         (setq SYS (vlax-create-object "Scripting.FileSystemObject"))
         (setq FOLDER (vlax-invoke-method SYS 'CREATEFOLDER FNAME))
         (vlax-putFOLDER
    "Attributes"
    2
         )
         (vlax-release-object FOLDER)
         (vlax-release-object SYS)
       )
       (alert (strcat "\"" FNAME "\" 档案夹已存在!!"))
   )
   (princ)
)

a65306805 发表于 2005-3-31 12:44:00

还是明经通道好,我在帮助里翻了半天,什么都没有,我的LISP书上也没有,还想请教这些东西哪里可以找得到啊,或者帮忙介绍一本书吧

SWAYWOOD 发表于 2006-3-21 21:25:00

<P>请教,d盘下没有文件夹e,但要产生"d:\\e\\f\\g"这个文件夹,要自动加上一层的文件夹</P>

龙龙仔 发表于 2006-3-22 07:59:00


;;
;; -- 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
)

SWAYWOOD 发表于 2006-3-22 12:15:00

<P>龙哥,可以生成了,不过会出错</P>
<P>((VXMAKEDIRECTORY "C:\\Temp\\MyTemp\\AllScrap"))<BR>; 错误: 函数错误: T<BR>_$ </P>

龙龙仔 发表于 2006-3-22 12:22:00

<P>一个括号即可</P>
<P>(VXMAKEDIRECTORY "C:\\Temp\\MyTemp\\AllScrap")</P>
页: [1] 2
查看完整版本: [求助]怎样用LISP创建文件夹