You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/10/01 13:43:00 UTC

[jira] [Commented] (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=16634038#comment-16634038 ] 

ASF GitHub Bot commented on CB-6938:
------------------------------------

janpio commented on issue #211: CB-6938: (fix) on iOS, copyTo should overwrite any existing file
URL: https://github.com/apache/cordova-plugin-file/pull/211#issuecomment-425912239
 
 
   Hey, I just fixed the problem that caused Android tests to fail in `master`. Could you rebase this PR please? This should get rid of the Android failures and possibly fix all test failures for this PR.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> 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: cordova-plugin-file
>    Affects Versions: 3.5.0
>         Environment: ios
>            Reporter: vldmrrrr
>            Assignee: Ian Clelland
>            Priority: Major
>              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
(v7.6.3#76005)

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