Author Topic: How to get List of all Files on a FTP Page  (Read 4859 times)

0 Members and 1 Guest are viewing this topic.

ChrisCarlson

  • Guest
Re: How to get List of all Files on a FTP Page
« Reply #15 on: August 16, 2016, 10:27:07 AM »
Code: [Select]
[1] site list
[1] 550 Permission denied.

PKENEWELL

  • Bull Frog
  • Posts: 318
Re: How to get List of all Files on a FTP Page
« Reply #16 on: August 16, 2016, 01:54:05 PM »
OK - got this working. It's clunky and slow but it does what the OP wants. Change the variables for paths and ftp information to fit the server and directory needed. NOTE: for some reason, you cannot save the batch file in the same directory as the runftp.txt script or results. it starts an endless loop. I don't know why it would do that.

(Not much for Error checking in this - alter as you will)
Code: [Select]
(defun c:testFTP (/ bpth pth2 ftp ftpp usrn pswd fl wscript cmd exec res rtn)
   (setq bpth "c:\\users\\philk\\"
         pth2 "c:\\users\\philk\\documents\\"
         ftp "ftp.opera.com"
         ftpp "/pub/opera/win/1218/en/"
         usrn "anonymous"
         pswd "myemail@email.com"
   )
   (setq fl (open (strcat bpth "FTP.BAT") "w"))
   (write-line "REM Set the working path" fl)
   (write-line (strcat "cd " pth2) fl)
   (write-line "" fl)
   (write-line "REM Write a Script to run the FTP commands" fl)
   (write-line (strcat "echo open " ftp "> runftp.txt") fl)
   (write-line (strcat "echo user " usrn " " pswd ">> runftp.txt") fl)
   (write-line (strcat "echo cd " ftpp ">> runftp.txt") fl)
   (write-line (strcat "echo dir -r " pth2 "ftpdir.txt>> runftp.txt") fl)
   (write-line "echo bye>> runftp.txt" fl)
   (write-line "" fl)
   (write-line "REM Launch FTP and pass it the script" fl)
   (write-line "ftp -n -s:runftp.txt" fl)
   (write-line "" fl)
   (write-line "REM Clean up." fl)
   (write-line "del runftp.txt" fl)
   (close fl)
   (if (setq wscript (vlax-create-object "WScript.Shell")
             cmd (findfile (strcat bpth "FTP.BAT"))
       )
     (progn
           (setq exec (vlax-invoke wscript 'Exec cmd))
           (while (and exec (= 0 (vlax-get-property exec 'Status)))
                  (princ (strcat "\rWaiting for Program \"" cmd "\"..."))
           )
           (mapcar 'vlax-release-object (list exec wscript))
     )
   )
   (if (setq res (findfile (strcat pth2 "ftpdir.txt")))
      (progn
         (setq fl (open res "r"))
         (while (setq ln (read-line fl))
            (princ (strcat "\n" ln))
            (setq rtn (reverse (cons ln (reverse rtn))))
         )
         (close fl)
      )
   )
   (princ "\n\n")
   rtn
)
« Last Edit: August 16, 2016, 03:38:36 PM by PKENEWELL »
"When you are asked if you can do a job, tell 'em, 'Certainly I can!' Then get busy and find out how to do it." - Theodore Roosevelt

Andrea

  • Water Moccasin
  • Posts: 2372
Re: How to get List of all Files on a FTP Page
« Reply #17 on: August 20, 2016, 03:10:05 PM »
did you tried to map a simple drive to the FTP site with windows..and then....read the file normaly ?
Keep smile...

PKENEWELL

  • Bull Frog
  • Posts: 318
Re: How to get List of all Files on a FTP Page
« Reply #18 on: August 22, 2016, 01:16:17 PM »
did you tried to map a simple drive to the FTP site with windows..and then....read the file normaly ?

Yes Interesting :idiot2: :-). I hadn't considered that since I haven't used FTP in ages. Seems like a sensible approach to me. The only drawback is depending on local drive mappings, which in a large user base can be difficult if all mappings are not forced to be the same. If a large company CAD base, the OP or his IT admin would also have to make a login script to establish all the drive mappings to a letter that (hopefully) isn't already mapped by someone. If the OP's CAD user base is relatively small though, it could be relatively easy to setup per user.
"When you are asked if you can do a job, tell 'em, 'Certainly I can!' Then get busy and find out how to do it." - Theodore Roosevelt