SYS(5)+SYS(2003)to contain the directory where the EXE is located, or the directory specified as the "Start in" entry in the shortcut properties, it's not always guaranteed to be the case. I've seen on occasion the path returned is that of the location of the FoxPro runtime library. Other times -- especially if some sort of API call was performed, the directory returned would point to one of the Windows system directories. If you've called a FindFile() or similar function, it may point to the last directory selected in the dialog.
oDstFolder = oShell.NameSpace("&lcCurrentDir"+"\datafile")could be written as:
oDstFolder = oShell.NameSpace(m.lcCurrentDir+"\datafile")
>Hi everyone, > >LOCAL lcDirPath, lcCurrentDir, oShell, oDstFolder >Do while .T. > With ThisForm > lcCurrentDir = ALLTRIM(SYS(5))+ALLTRIM(SYS(2003)) > lcDirPath = ALLTRIM(.txtDirPath.Value) > IF EMPTY(.txtDirPath.Value) > Messagebox("Directory Pathname is Empty",0+16,"Invalid Entry") > Exit > ENDIF > IF .NOT. DIRECTORY(.txtDirPath.Value) > Messagebox("Directory Pathname Not Found!",0+16,"Invalid Entry") > Exit > ENDIF > SET SAFETY OFF > oShell = CREATEOBJECT("Shell.Application") > oDstFolder = oShell.NameSpace("&lcCurrentDir"+"\datafile") > IF VARTYPE(oDstFolder)="O" > oDstFolder.CopyHere("&lcDirPath"+"\*.*") > ENDIF > SET SAFETY On > Exit >Enddo > >