Your For Each loop declares a variable called
file
- which the system assumes is what you mean when you write:
File.Copy(file, destinationFilePath, True)
Rename it and the confuseion will go away:
For Each filePath As String In Directory.GetFiles(sourceFolder)
Dim fileName As String = Path.GetFileName(filePath)
Dim destinationFilePath As String = Path.Combine(destinationFolder, fileName)
File.Copy(filePath, destinationFilePath, True)
Next