MOVEFILES Method (FileSystem)
Description
Moves files to a specified location, optionally showing a progress information and allowing an Undo operation.
Syntax
SuccessFlag = Exec_Method( "FILESYSTEM", "MOVEFILES", FilesFrom, FilesTo, MoveFilesOptions )
Parameters
Name | Required | Description |
---|---|---|
FilesFrom | Yes | @fm-delimited list of files to move. Wildcard characters are allowed. |
FilesTo | Yes | Fully qualified path of the location to move the files to, or an @fm-delimited list of destination files. In the latter case the number of file names must match exactly the number of file names specified in the "FilesFrom" parameter. |
MoveFilesOptions | No | Contains an @Fm-delimited dynamic array of options that control the behavior of the move operation: <1> Allow undo <2> Allow UI <3> Parent window ID <4> Progress dialog title <5> Allow confirmations |
Returns
TRUE$ if the move was performed successfully, or FALSE$ if an error occurred. If the case of the latter event the FILEOPRESULT property may be used to obtain more details regarding the failure.
Remarks
The MoveFilesOptions argument is composed of five fields which control the behavior of the move operation – each field is described fully below:
Field | Name | Description |
---|---|---|
<1> | Allow undo | If TRUE$ then save Undo information. Defaults to FALSE$. |
<2> | Allow UI | If TRUE$ then allow any appropriate dialogs to be displayed such as progress and error information. Defaults to FALSE$. |
<3> | Parent window ID | Specifies the name of a WINDOW object to use as the parent for any dialogs displayed during the move operation. |
<4> | Progress dialog title | Text to display in the progress dialog during the move operation. |
<5> | Allow confirmations | If TRUE$ then allow the user to respond to any confirmation dialogs presented during the move operation. Defaults to FALSE$. |
The MOVEFILES method is basically a wrapper around the SHFileOperation Windows API function, so it is worth examining at the documentation for this on the MSDN website to get a better idea of the capabilities of this method.
You should use fully qualified path names with this method. Using it with relative path names is not thread safe.
Equated constants for use with the MOVEFILES method can be found in the PS_FILESYSTEM_EQUATES insert record.
Example
// Use the FILESYSTEM MOVEFILES method to move all files in a folder to // a specified destination folder using wildcard characters, showing any // progress information, but not allowing the user to override any // conflicts. $Insert PS_FileSystem_Equates $Insert Logical FilesFrom = "c:\my_data\aug_2017\*.*" FilesTo = "c:\backup\backup_data\aug_2017" MoveOptions = "" MoveOptions<PS_MVF_ALLOWUNDO$> = TRUE$ ; // Save Undo info MoveOptions<PS_MVF_ALLOWUI$> = TRUE$ ; // Show dialogs MoveOptions<PS_MVF_PARENTWINDOW$> = @Window MoveOptions<PS_MVF_PROGRESSTITLE$> = "Moving data to backup folder" MoveOptions<PS_MVF_ALLOWCONFIRM$> = FALSE$ If Exec_Method( "FILESYSTEM", "MOVEFILES", FilesFrom, FilesTo, MoveOptions ) Then // Moved OK - data is now in: "c:\backup\backup_data\aug_2017" End Else ErrorInfo = Get_Property( "FILESYSTEM", "FILEOPRESULT" ) ErrorCode = ErrorInfo<PS_FOR_ERRORCODE$> ErrorText = ErrorInfo<PS_FOR_ERRORTEXT$> End // Use the FILESYSTEM MOVEFILES method to move specific files in a folder to // a specified destination folder showing any progress information, but not // allowing the user to override any conflicts. DirFrom = "c:\my_data\aug_2017\" DirTo = "c:\backup\backup_data\aug_2017\" FileNames = "book1.xls" FileNames<-1> = "book2.xls" FilesFrom = "" FilesTo = "" XCount = FieldCount( FileNames, @fm ) For X = 1 To XCount FilesFrom<x> = DirFrom : FileNames<x> FilesTo<x> = DirTo : FileNames<x> Next MoveOptions = "" MoveOptions<PS_MVF_ALLOWUNDO$> = TRUE$ ; // Save Undo info MoveOptions<PS_MVF_ALLOWUI$> = TRUE$ ; // Show dialogs MoveOptions<PS_MVF_PARENTWINDOW$> = @Window MoveOptions<PS_MVF_PROGRESSTITLE$> = "Moving data to backup folder" MoveOptions<PS_MVF_ALLOWCONFIRM$> = FALSE$ If Exec_Method( "FILESYSTEM", "MOVEFILES", FilesFrom, FilesTo, MoveOptions ) Then // Moved OK - data is now in: "c:\backup\backup_data\aug_2017" End Else ErrorInfo = Get_Property( "FILESYSTEM", "FILEOPRESULT" ) ErrorCode = ErrorInfo<PS_FOR_ERRORCODE$> ErrorText = ErrorInfo<PS_FOR_ERRORTEXT$> End
See Also
FILEOPRESULT property.