This item was deprecated in version 2019r2.1. Please use FolderItem.CopyTo as a replacement.
If the FolderItem is a folder, then the folder and its contents are copied into Destination.
If Destination is a file and the file already exists, the copy is cancelled. You need to delete the existing file first. If there is an error, the LastErrorCode property contains an error code.
On Xojo Cloud, FolderItems that are copied using CopyFileTo cannot have their permissions changed. For now, the workaround is to use a Shell command:
#If TargetXojoCloud Then Var sh As New Shell sh.Execute("chmod 666 " + f.ShellPath) #EndIf
The following example method copies a source folderitem to a new destination using CopyFileTo. It returns True if all files in the folder were successfully copied and returns False otherwise.
Function CopyFileOrFolder(source As FolderItem, destination As FolderItem) As Boolean Var newFolder As FolderItem If source.IsFolder Then ' it's a folder newFolder = destination.Child(source.Name) newFolder.CreateAsFolder If Not newFolder.Exists Or Not newFolder.IsFolder Then ' folder was not created - stop processing Return False End If For Each file As FolderItem In source.Children If file = Nil Then ' inaccessible Return False End If If Not CopyFileOrFolder(file, newFolder) Then ' copy operation failed Return False End If Next Else ' it's not a folder source.CopyFileTo(destination) If source.LastErrorCode <> 0 Then Return False End If End If Return True End Function
All project types on all supported operating systems.