2011-08-28 33 views
18

Tôi biết bạn có thể sử dụng NSBundle:Lấy tên tệp và tiện ích mở rộng từ filepath có lập trình ca cao?

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

để có được những filepath của một tập tin, nhưng làm thế nào tôi sẽ nhận được tên file và phần mở rộng (riêng) từ filepath lập trình sử dụng NSBundle.

Ví dụ, tôi có thể có: /Users/theuser/Documents/yourdocument.txt

Rõ ràng là các tập tin là 'yourdocument', và phần mở rộng 'txt'

Nhưng tôi cần phải lấy tên tệp và phần mở rộng từ filepath để sử dụng như một NSString.

Trợ giúp của bạn được đánh giá cao!

Trả lời

42

Có các phương pháp trên NSString để thực hiện việc này. Hãy xem -[NSString pathExtension]-[NSString lastPathComponent], cả hai được xác định trong NSPathUtilities.h.

+0

Ok bị mất cảm ơn –

25

để có được tên tập tin mà không cần mở rộng, hãy thử [NSString stringByDeletingPathExtension];

-3

tôi hy vọng điều này sẽ giúp bạn ....

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

    [txtBeowsFilePath setStringValue:Str]; 

    Browesfilename=[Str lastPathComponent]; 
+1

Thực tiễn kém để đặt tên biến cục bộ của bạn bắt đầu bằng chữ in hoa. Bạn nên đặt tên cho chúng là 'filePath' và 'extension' không phải là 'FilePath' và 'Extension'. –

+1

câu trả lời này là sai, lastPathComponent sẽ cung cấp cho bạn toàn bộ tên tệp vì nó là thành phần cuối cùng sau dấu gạch chéo (nếu nó là tệp) – NikkyD

+0

Đây là mã hóa khủng khiếp. Không bắt đầu biến của bạn với chữ in hoa. Sử dụng khoảng cách thích hợp giữa các câu lệnh gán. Bạn cũng sai chính tả các biến của mình theo các cách khác nhau mỗi lần và bạn tùy ý lạc đà. KHÔNG BAO GIỜ làm điều này. Điều này chỉ đơn giản là khủng khiếp. –

0

Hãy thử điều này, nó làm việc cho tôi.

NSString *fileName = @"yourFileName.pdf"; 
NSString *ext = [fileName pathExtension]; 
Các vấn đề liên quan