जब मेरे पास NSString
होता है /Users/user/Projects/thefile.ext
मैं thefile
ऑब्जेक्टिव-सी के तरीकों के साथ एक्सट्रैक्ट करना चाहता हूं ।
ऐसा करने का सबसे आसान तरीका क्या है?
जब मेरे पास NSString
होता है /Users/user/Projects/thefile.ext
मैं thefile
ऑब्जेक्टिव-सी के तरीकों के साथ एक्सट्रैक्ट करना चाहता हूं ।
ऐसा करने का सबसे आसान तरीका क्या है?
जवाबों:
NSString संदर्भ से लिया गया , आप उपयोग कर सकते हैं:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
lastPathComponent
कॉल वापस आ जाएगी thefile.ext
, और stringByDeletingPathExtension
अंत से विस्तार प्रत्यय निकाल देंगे।
lastPathComponent
। धन्यवाद!
[[[NSFileManager defaultManager] displayNameAtPath:path] stringByDeletingPathExtension]
(जो भी फ़ाइल प्रबंधक आपको चाहिए) का उपयोग करें। यह सुनिश्चित करता है कि फ़ाइल नाम सही ढंग से स्थानीयकृत है, और यह कि एक्सटेंशन हटा दिया गया है।
NSString *myExtension = [myString pathExtension]
यदि आप उपयोगकर्ता-पठनीय फ़ाइल नाम प्रदर्शित कर रहे हैं, तो आप उपयोग नहीं करना चाहते हैं lastPathComponent
। इसके बजाय, NSFileManager की displayNameAtPath:
विधि के लिए पूर्ण पथ पास करें । यह मूल रूप से एक ही काम करता है, केवल यह फ़ाइल नाम को सही ढंग से स्थानीय करता है और उपयोगकर्ता की वरीयताओं के आधार पर विस्तार को हटा देता है।
विषय के देर से और बंद होने के जोखिम पर - और @ मार्क की उत्कृष्ट अंतर्दृष्टि के बावजूद, स्विफ्ट में ऐसा दिखता है:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent