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备份的支持应该是安全的。