简体   繁体   English

在iPhone中以特定名称在Documents目录中保存文件失败

[英]Saving file with a specific name in Documents directory is failing in iPhone

I am using following code to save a file in iPhone Documents directory 我正在使用以下代码将文件保存在iPhone文档目录中

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *mediaFile = [documentsPath stringByAppendingPathComponent:[message getMediaName]];
NSString *filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", mediaFile, IMAGE_EXTENSION]];
NSError *error = nil;
[data writeToFile:filePath options:NSDataWritingAtomic error:&error];

A sample of the filePath is filePath的示例是

/Users/Umar/Library/Developer/CoreSimulator/Devices/8B419461-4E18-4E2F-923D-01092CA2263C/data/Containers/Data/Application/AD869525-92F9-4C5A-8FCE-CF67F05F8CEA/Documents/Users/Umar/Library/Developer/CoreSimulator/Devices/8B419461-4E18-4E2F-923D-01092CA2263C/data/Containers/Data/Application/AD869525-92F9-4C5A-8FCE-CF67F05F8CEA/Documents/32286_1_44f74dc9d027d53bfa3e0bde9a28bf49.jpg /用户/ Umar /图书馆/开发人员/ CoreSimulator /设备/ 8B419461-4E18-4E2F-923D-01092CA2263C /数据/容器/数据/应用程序/ AD869525-92F9-4C5A-8FCE-CF67F05F8CEA /文档/用户/ Umar /图书馆/开发人员/CoreSimulator/Devices/8B419461-4E18-4E2F-923D-01092CA2263C/data/Container/Data/Application/AD869525-92F9-4C5A-8FCE-CF67F05F8CEA/Documents/32286_1_44f74dc9d027d53bfa3e0bde9a28bf49.jpg

The path upto documents do exist and I have checked via Finder. 到文档的路径确实存在,并且我已经通过Finder检查了。 Not sure Why i am getting error Error Domain=NSCocoaErrorDomain Code=4 "The folder “32286_1_44f74dc9d027d53bfa3e0bde9a28bf49.jpg” doesn't exist." 不确定为什么我会收到错误Error Domain=NSCocoaErrorDomain Code=4 "The folder “32286_1_44f74dc9d027d53bfa3e0bde9a28bf49.jpg” doesn't exist."

The problem is in this two lines 问题出在这两行

NSString *mediaFile = [documentsPath stringByAppendingPathComponent:[message getMediaName]];
NSString *filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", mediaFile, IMAGE_EXTENSION]];

Output of mediaFile is mediaFile输出是

/Users/Umar/Library/Developer/CoreSimulator/Devices/8B419461-4E18-4E2F-923D-01092CA2263C/data/Containers/Data/Application/AD869525-92F9-4C5A-8FCE-CF67F05F8CEA/Documents/32286_1_44f74dc9d027d53bfa3e0bde9a28bf49

Output of filePath is combination of filePath输出是以下各项的组合

documentPath + mediaFile + Image Extension documentPath + mediaFile + Image Extension

So problem is that document path exist two times, that's why compiler have problem in finding path and returning error. 因此问题在于文档路径存在两次,这就是为什么编译器在查找路径和返回错误时会遇到问题。

I hope this will help you. 我希望这能帮到您。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM