2011-08-16 16 views
49

Intento obtener la ruta del archivo de un archivo llamado "temp.pdf" que se encuentra en la carpeta NSTemporaryDirectory (he comprobado, el archivo existe).Obtener ruta de archivo y URL para el archivo en el directorio temporal

utilizo este:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"temp" ofType:@"pdf" inDirectory:NSTemporaryDirectory()]; 

He probado con:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"temp.pdf" ofType:@"" inDirectory:NSTemporaryDirectory()]; 

Y:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"temp" ofType:@"pdf"]; 

pero parece que no funciona, el valor de retorno es siempre nulo.

Entonces, estoy un poco confundido, ¿alguien puede ayudarme?

Gracias.

Respuesta

120

NSTemporaryDirectory() proporciona una ruta completa al directorio temporal. En lugar de utilizar su mainBundle han intentado

NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"temp.pdf"]; 

Si necesita una URL en su lugar, hacer esto:

NSURL *furl = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"temp.pdf"]]; 
+0

OK, cuando hago eso, quiero usar filepath con [UIDocumentInteractionController interactionControllerWithURL: filepath]; He creado [NSURL urlWithString: filepath], pero Xcode dice: "Esquema no válido (nulo). Solo se admite el esquema de archivos". – HasgardLucian

+19

Pruebe 'NSURL * furl = [NSURL fileURLWithPath: [NSTemporaryDirectory() stringByAppendingPathComponent: @" temp.pdf "]];' – Joe

+0

¿Qué sucede si queremos devolver todos los archivos pdf en el directorio temporal? –

13

Swift 2,0

let tmpDirURL = NSURL.fileURLWithPath(NSTemporaryDirectory(),isDirectory: true) 
let fileURL = tmpDirURL.URLByAppendingPathComponent("stuff").URLByAppendingPathExtension("gif") 
print("FilePath: \(fileURL.path)") 
0

para SWIFT 3.0

var fileUrl: URL = URL(fileURLWithPath: NSTemporaryDirectory()) 
fileUrl.appendPathComponent("foo") 
fileUrl.appendPathExtension("bar") 
Cuestiones relacionadas