This is what I use
;;; quickie to write drawing file names from
;;; a folder to a user specified file.
;;; very little (read basically none) error checking.
;;; could be modified to work on sub folders also.
;;; modify as required to suite your needs.
(defun c:Dwgs2File (/ folder dwgs target file)
(setq folder (BrowseForFolder)) ; thanks for that, Tony T
(if (and folder
(setq dwgs (vl-directory-files folder "*.dwg" 1))
;;(setq target (getfiled " Select the Target file location" "dwgFiles" "txt" 1))
(setq target "C:\\Temp\\DwgFiles.txt")
(setq file (open target "w")))
(progn (write-line folder file)
(foreach item dwgs (write-line (vl-filename-base item) file))
(close file)))
(startapp "notepad.exe" target)
(princ))
; Tony Tanzillo
(defun BrowseForFolder (/ sh folder folderobject result)
(vl-load-com)
(setq sh (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application"))
(setq folder
(vlax-invoke-method
sh
'BrowseForFolder
0
(strcat
"Dwgs2File"
" : Make a Drawing List\n\t\t Please select a directory for getting a\n\t\t list of all drawings in the directory.")
0))
(vlax-release-object sh)
(if folder
(progn (setq folderobject (vlax-get-property folder 'Self))
(setq result (vlax-get-property FolderObject 'Path))
(vlax-release-object folder)
(vlax-release-object FolderObject)
result)))
(princ)
Gary