You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Radoslav Chovan (JIRA)" <ji...@apache.org> on 2017/02/10 06:38:41 UTC

[jira] [Comment Edited] (CB-6938) iOS File plugin: copyTo for file returns error when destination file exists

    [ https://issues.apache.org/jira/browse/CB-6938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15860831#comment-15860831 ] 

Radoslav Chovan edited comment on CB-6938 at 2/10/17 6:38 AM:
--------------------------------------------------------------

Hi, 
this bug was created on Jun/2014, now it is Feb/2017 and still is not fixed. Could someone please fix this bug ? My code works on Android without problem, but on iOS I get this error. 

Thank you


was (Author: coudysk@gmail.com):
Hi, 
this bug was created on Jun/2014, now it is Feb/2017 and still is not fixed. Could someone please fix this bug ? 

Thank you

> iOS File plugin: copyTo for file returns error when destination file exists
> ---------------------------------------------------------------------------
>
>                 Key: CB-6938
>                 URL: https://issues.apache.org/jira/browse/CB-6938
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin File
>    Affects Versions: 3.5.0
>         Environment: ios
>            Reporter: vldmrrrr
>            Assignee: Ian Clelland
>              Labels: iOS
>
> According to w3c spec:
> A copy of a file on top of an existing file must attempt to delete and replace that file.
> iOS version of plugin in file CDVLocalFilesystem.m contains this code for the case:
> {code}
>                 } else if (bNewExists) {
>                     // the full destination should NOT already exist if a copy
>                     errCode = PATH_EXISTS_ERR;
> {code}
> Suggested patch:
> {code}
> diff --git a/src/ios/CDVLocalFilesystem.m b/src/ios/CDVLocalFilesystem.m
> index d1576ad..f5aa508 100644
> --- a/src/ios/CDVLocalFilesystem.m
> +++ b/src/ios/CDVLocalFilesystem.m
> @@ -535,11 +535,11 @@
>                  if (bSrcIsDir && ![self canCopyMoveSrc:srcFullPath ToDestination:newFileSystemPath]) {
>                      // can't copy dir into self
>                      errCode = INVALID_MODIFICATION_ERR;
> -                } else if (bNewExists) {
> -                    // the full destination should NOT already exist if a copy
> -                    errCode = PATH_EXISTS_ERR;
>                  } else {
> -                    bSuccess = [fileMgr copyItemAtPath:srcFullPath toPath:newFileSystemPath error:&error];
> +                   bSuccess = YES;
> +                    if (bNewExists)
> +                        bSuccess = [fileMgr removeItemAtPath:newFileSystemPath error:&error];
> +                    if (bSuccess)
> +                        bSuccess = [fileMgr copyItemAtPath:srcFullPath toPath:newFileSystemPath error:&error];
>                  }
>              } else { // move
>                  // iOS requires that destination must not exist before calling moveTo
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org