816
817
private async doMoveCopy(sourceProvider: IFileSystemProvider, source: URI, targetProvider: IFileSystemProvider, target: URI, mode: 'move' | 'copy', overwrite: boolean): Promise<'move' | 'copy'> {
819
return mode; // simulate node.js behaviour here and do a no-op if paths match
820
}
822
>
// validation
823
>
const { exists, isSameResourceWithDifferentPathCase } = await this.doValidateMoveCopy(sourceProvider, source, targetProvider, target, mode, overwrite);
824
>
825
>
// delete as needed (unless target is same resurce with different path case)
826
>
if (exists && !isSameResourceWithDifferentPathCase && overwrite) {
827
await this.del(target, { recursive: true });
828
}
830
>
// create parent folders
831
>
await this.mkdirp(targetProvider, this.getExtUri(targetProvider).providerExtUri.dirname(target));
832
>
833
>
// copy source => target
834
>
if (mode === 'copy') {
835
836
// same provider with fast copy: leverage copy() functionality