14
Estoy utilizando el código de abajo para guardar una imagen en el NSDocumentDirectory
longitud máxima del nombre del archivo
-(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;
}
el nombre suele ser la URL de donde se descargó la imagen.
¿Existe alguna limitación en la longitud del nombre del archivo? Que a veces las direcciones URL pueden ser super largo ...
agradecimiento
También vale la pena señalar la longitud del componente de nombre de archivo de una ruta - en el mismo encabezado '#define NAME_MAX 255'. – petert
Esto debe incluirse en la respuesta – Minimi
En la práctica, puede ser prudente permanecer un poco por debajo de PATH_MAX para las rutas a los recursos dentro de la aplicación según [esta publicación] (https://deciphertools.com/blog/2014_10_01_beware_of_long_pathnames/). Sugiere 932 caracteres como máximo de trabajo, ya que aparentemente el uso de directorios intermedios durante una operación de copia de seguridad de iTunes/iCloud puede hacer que la longitud total de la ruta exceda PATH_MAX, lo que da como resultado la falla de la copia de seguridad/restauración de su aplicación. – user2067021