2011-08-28 15 views
18

Sé que usted puede utilizar NSBundle:Obtener el nombre de archivo y la extensión desde el archivo de ruta programáticamente cacao?

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"rtf"]; 

para obtener la ruta de archivo de un archivo, pero ¿cómo puedo obtener el nombre del archivo y la extensión (por separado) de la ruta de archivo mediante programación utilizando NSBundle.

Por ejemplo, es posible que tenga: /Users/theuser/Documents/yourdocument.txt

Es obvio que el archivo es 'yourdocument', y la extensión '.txt'

pero necesito obtener el nombre de archivo y la extensión de la ruta de archivo para usar como NSString.

¡Su ayuda es muy apreciada!

Respuesta

42

Existen métodos en NSString que hacen esto. Mire -[NSString pathExtension] y -[NSString lastPathComponent], ambos definidos en NSPathUtilities.h.

+0

Bien, eche un vistazo gracias –

25

para obtener el nombre del archivo sin extensión, probar [NSString stringByDeletingPathExtension];

-3

espero que esto le ayudará a ....

Str = [NSString stringWithFormat:@"%@",[openPanel URL]]; 

    [txtBeowsFilePath setStringValue:Str]; 

    Browesfilename=[Str lastPathComponent]; 
+1

No es una buena práctica nombrar sus variables locales comenzando con letras mayúsculas. Debes nombrarlos 'filePath' y 'extension', no 'FilePath' y 'Extension'. –

+1

esta respuesta es incorrecta, lastPathComponent le dará el nombre completo del archivo ya que es el último componente después de la barra (si es un archivo) – NikkyD

+0

Esto es una codificación terrible. No comience sus variables con letras mayúsculas. Use el espacio adecuado entre las declaraciones de asignación. También estás equivocando tus variables de maneras diferentes cada vez y estás jugando camelcas arbitrariamente. NUNCA hagas esto. Esto es simplemente terrible. –

0

probar esto, a mí me funciona.

NSString *fileName = @"yourFileName.pdf"; 
NSString *ext = [fileName pathExtension]; 
Cuestiones relacionadas