Method
FolderItem.CopyFileTo
Warning
This item was deprecated in version 2019r2.1. Please use FolderItem.CopyTo as a replacement.
Description
If the FolderItem is a folder, then the folder and its contents are copied into Destination.
Notes
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
Sample code
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
Compatibility
All project types on all supported operating systems.