2011-08-28 12 views
18

NSBundleを使うことができます:ファイルパスからファイル名と拡張子をプログラムでココアにしますか?

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

ファイルのファイルパスを取得するにはどうすればいいですか?

たとえば、私は/Users/theuser/Documents/yourdocument.txt

ファイルを持っている可能性があります。ファイルは「yourdocument」で、拡張子は「txt」

ファイルパスからNSStringとして使用するファイル名と拡張子を取得します。

お手数をおかけしますようお願い申し上げます。

答えて

42

NSStringには、これを行う方法があります。 -[NSString pathExtension]-[NSString lastPathComponent]を参照してください。どちらもNSPathUtilities.hで定義されています。

+0

ありがとうございました –

25

拡張子のないファイル名を取得するために、私はこれは

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

    [txtBeowsFilePath setStringValue:Str]; 

    Browesfilename=[Str lastPathComponent]; 
-3

を試してみてください。

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

大文字で始まるローカル変数に名前を付けるのは慣習ではありません。 'filePath'と 'Extension'ではなく 'filePath'と 'extension'という名前を付けるべきです。 –

+1

この回答は間違っていますが、lastPathComponentはスラッシュ(ファイルの場合)の後の最後のコンポーネントであるため、ファイル名全体を指定します。 – NikkyD

+0

これはひどいコーディングです。変数を大文字で開始しないでください。代入文の間に適切な間隔を置いてください。あなたはまた、毎回異なる方法で変数をスペルミスしています。あなたは任意にキャメルケーシングしています。決してこれをしないでください。これは単にひどいことです。 –

0

が、それは私の作品、これを試してみてください....あなたを助けることを願っています[NSString stringByDeletingPathExtension];

関連する問題