Iphone 文件名的最大长度
我正在使用下面的代码将图像保存在Iphone 文件名的最大长度,iphone,nsfilemanager,nsdocumentdirectory,Iphone,Nsfilemanager,Nsdocumentdirectory,我正在使用下面的代码将图像保存在NSDocumentDirectory -(BOOL)saveImage:(UIImage *)image name:(NSString *)name{ NSString *dir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *path = [NSString pathW
NSDocumentDirectory
-(BOOL)saveImage:(UIImage *)image name:(NSString *)name{
NSString *dir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [NSString pathWithComponents:[NSArray arrayWithObjects:dir, name, nil]];
BOOL ok = [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
if (!ok) {
NSLog(@"Error creating file %@", path);
}
else {
NSFileHandle* myFileHandle = [NSFileHandle fileHandleForWritingAtPath:path];
[myFileHandle writeData:UIImagePNGRepresentation(image)];
[myFileHandle closeFile];
}
return ok;
}
名称通常是下载图像的url
文件名的长度有限制吗?你知道有时候URL可能很长
感谢您查看syslimits中的PATH_MAX常量。h:91
...
#define PATH_MAX 1024 /* max bytes in pathname */
...
您可以通过执行以下操作来测试这一点:
NSLog(@"%i", PATH_MAX);
只是为了确保。还值得注意路径的文件名组件的长度-在同一个标题中
#define NAME_MAX 255
。这应该包括在回答中。在实践中,明智的做法是,根据需要,对于应用程序内部资源的路径,保持在path_MAX以下。它建议最大工作长度为932个字符,因为在iTunes/iCloud备份操作期间使用中间目录显然会导致总路径长度超过path_MAX,从而导致备份/还原应用程序失败。@user2067021感谢您分享这篇文章!在点击/阅读链接帖子后,只需澄清一点:建议的最大工作时间实际上是PATH_MAX-7,或1017。932数字是应用程序沙盒后文件名中的字符,通常为85。因此,使用PATH_MAX-7或1017来维护对iCloud备份的支持应该是安全的。