Error The operation couldn’t be completed. (Cocoa error 516.)

本文介绍了一种常见的文件系统错误——尝试创建一个已存在的文件。文章详细解释了Error 516 (NSFileWriteFileExistsError) 的原因,并提供了一个具体的代码示例,展示了如何在复制文件之前检查目标文件是否存在,若存在则先删除,从而避免该错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

This is very common error that happens when you try to create a file on the file system and a file with the same name already exists. You can avoid that by checking whether a file with the name already exists or not. If it does exists then remove it and try to create again.

Error 516 is NSFileWriteFileExistsError - You can't move a file to a place where a file already exists.

The below code does not check for this and can lead to above error:

            NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
            NSString *destSpecFile = [NSString stringWithFormat:@"%@/%@", docDir,gallerySpecFile];
           
            NSError *err;
                   
            NSString *srcPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:gallerySpecFile];
            CCLOG(@"Src %@",srcPath);
            CCLOG(@"Descr %@",destSpecFile);
           
            [[NSFileManager defaultManager] copyItemAtPath:srcPath
                                                    toPath:destSpecFile
                                                     error:&err];

Before attempting the copyItemAtPath, check the destination file and if there, remove it.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值