LOCAL lcSourceDirectory, lcDestinationDirectory, lcFileName lcSourceDirectory = GETDIR("","Select Source Directory","Select",64) IF !EMPTY(lcSourceDirectory) lcDestinationDirectory = GETDIR("","Select Destination Directory","Select",64) IF !EMPTY(lcDestinationDirectory) SET DEFAULT TO (lcSourceDirectory) lcFileName = SYS(2000,"*.*") && modify mask depending on what you want to copy, right now it copies all DO WHILE !EMPTY(lcFilename) COPY FILE (lcFilename) TO (lcDestinationDirectory + JUSTFNAME(lcFilename)) lcFileName = SYS(2000,"*.*",1) && modify mask depending on what you want to copy, right now it copies all ENDDO ELSE MESSAGEBOX("Destination directory is required.", 64, "Copy Process Terminated") ENDIF ELSE MESSAGEBOX("Source directory is required.", 64, "Copy Process Terminated") ENDIFYou could add additional code to create the destination directory if it doesn't exist using the MKDIR command.