2011-08-28 4 views
18

So che è possibile utilizzare NSBundle:Ottieni il nome file e l'estensione dal percorso file cacao programmaticamente?

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

per ottenere il percorso file di un file, ma come vorrei avere il nome del file e l'estensione (a parte) dal percorso del file di programmazione utilizzando NSBundle.

Per esempio, io possa avere: /Users/theuser/Documents/yourdocument.txt

E 'ovvio che il file è 'yourdocument', e l'estensione 'txt'

ma ho bisogno di ottenere il nome file e l'estensione dal percorso file da utilizzare come NSString.

Il vostro aiuto è molto apprezzato!

risposta

42

Ci sono metodi su NSString che lo fanno. Guarda -[NSString pathExtension] e -[NSString lastPathComponent], entrambi definiti in NSPathUtilities.h.

+0

Ok malati dare un'occhiata grazie –

25

per ottenere il nome del file senza estensione, provare [NSString stringByDeletingPathExtension];

-3

Spero che questo vi aiuterà a ....

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

    [txtBeowsFilePath setStringValue:Str]; 

    Browesfilename=[Str lastPathComponent]; 
+1

E 'cattive pratiche dare un nome alle variabili locali che iniziano con le lettere maiuscole. Dovresti chiamarli 'filePath' e 'extension' non 'FilePath' e 'Extension'. –

+1

questa risposta è errata, lastPathComponent ti darà l'intero nome del file dato che è l'ultimo componente dopo la barra (se si tratta di un file) – NikkyD

+0

Questa è una codifica terribile. Non iniziare le tue variabili con lettere maiuscole. Utilizzare la spaziatura corretta tra le istruzioni di assegnazione. Inoltre, stai sbagliando le tue variabili in modi diversi ogni volta e stai camelcando arbitrariamente. MAI farlo. Questo è semplicemente terribile. –

0

Prova questa, per me funziona.

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