2011-08-28 19 views
18

मुझे पता है तुम NSBundle उपयोग कर सकते हैं:फ़ाइलपैथ प्रोग्रामेटिक कोको से फ़ाइल नाम और एक्सटेंशन प्राप्त करें?

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

एक फ़ाइल के filepath प्राप्त करने के लिए है, लेकिन मैं कैसे filepath से फ़ाइल नाम और विस्तार (अलग से) मिलेगा प्रोग्राम के रूप में NSBundle का उपयोग कर।

उदाहरण के लिए, मैं हो सकता है: /Users/theuser/Documents/yourdocument.txt

ऐसा नहीं है कि फ़ाइल 'yourdocument' है, और एक्सटेंशन 'txt'

स्पष्ट है लेकिन मैं करने की जरूरत है एनएसएसटींग के रूप में उपयोग करने के लिए फ़ाइलपैथ से फ़ाइल नाम और एक्सटेंशन प्राप्त करें।

आपकी मदद की बहुत सराहना की जाती है!

उत्तर

42

NSString पर विधियां हैं जो ऐसा करते हैं। -[NSString pathExtension] और -[NSString lastPathComponent] पर देखें, दोनों NSPathUtilities.h में परिभाषित हैं।

+0

ठीक बीमार एक नज़र डालें धन्यवाद –

25

विस्तार के बिना फ़ाइल नाम पाने के लिए, [NSString stringByDeletingPathExtension];

-3

मैं आशा है कि यह तुम्हारी मदद करेगा बाहर की कोशिश ....

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

    [txtBeowsFilePath setStringValue:Str]; 

    Browesfilename=[Str lastPathComponent]; 
+1

पूंजी अक्षरों से शुरू होने वाले आपके स्थानीय चर नामों का नाम खराब है। आपको उन्हें 'फ़ाइलपाथ' और 'एक्सटेंशन' नाम 'फ़ाइलपाथ' और 'एक्सटेंशन' नाम देना चाहिए। –

+1

यह उत्तर गलत है, lastPathComponent आपको पूरे फ़ाइल नाम देगा क्योंकि स्लैश के बाद यह अंतिम घटक है (यदि यह फ़ाइल है) – NikkyD

+0

यह भयानक कोडिंग है। पूंजी अक्षरों के साथ अपने चर शुरू मत करो। असाइनमेंट कथन के बीच उचित अंतर का प्रयोग करें। आप प्रत्येक बार अपने चर अलग-अलग तरीकों की गलत वर्तनी भी कर रहे हैं और आप मनमाने ढंग से कैमेलकेसिंग कर रहे हैं। यह कभी नहीं करो। यह बस भयानक है। –

0

इस प्रयास करें, यह मेरे लिए काम करता है।

NSString *fileName = @"yourFileName.pdf"; 
NSString *ext = [fileName pathExtension]; 
संबंधित मुद्दे