2011-03-14 33 views
20

Tengo un NSURL, una ruta de archivo, y quiero agregar un NSString al final del mismo (el nombre del archivo) ¿cómo puedo hacer esto? Pero después de esto es que no quiero que todo sea un NSURL.¿Agregar NSString a NSURL?

Gracias.

Respuesta

6

creo que es tan simple como:

NSString *s = [aUrl.path stringByAppendingString:@"newString"]; 
+2

Si se utiliza este, para obtener una NSURL al final, se tendrá que hacer esto: '[NSURL URLWithString: [aUrl.path stringByAppendingString: @ "newString"]]' – Myxtic

96

Creo que es una buena solución:

NSURL *bUrl = [aUrl URLByAppendingPathComponent:@"newString"]; 

En Swift que podría hacer lo siguiente,

var bURL = aURL.URLByAppendingPathComponent("newString") 

También puede estatal si la URL es un directorio,

var bURL = aURL.URLByAppendingPathComponent("newString", isDirectory: true) 
+6

Nota Esto codificación URL de la cadena del componente de ruta – amleszk

+1

Esta es la solución correcta. –

+2

Esto también incluye una barra antes de la cadena. –

2

Si usted tiene un NSURL archivo en un directorio y quiere terminar con un NSString que contiene la trayectoria del NSURL con un nombre de archivo anexado a él, utilice esto:

NSURL *url = [NSURL fileURLWithPath:@"/System" isDirectory:YES]; 
NSString *filename = @"foo"; 
NSString *result = [url.path stringByAppendingPathComponent:filename]; 

También puede utilizar URLByAppendingPathComponent pero eso agrega un paso adicional que crea un objeto NSURL adicional que no es necesario.

NSURL *url = [NSURL fileURLWithPath:@"/System" isDirectory:YES]; 
NSString *filename = @"foo"; 
NSURL *newURL = [url URLByAppendingPathComponent:filename]; 
NSString *result = newURL.path;