2012-05-11 12 views
16

मैं एक पूर्ण पथ का नाम निकालना चाहता हूं। यदि मेरे पास मान/mnt/sdcard/वीडियो/वीडियोऑम के साथ एक स्ट्रिंग है, तो मैं मूल्य Videoname के साथ एक स्ट्रिंग को सहेजना चाहता हूं।अंतिम पथ से नाम प्राप्त करें, अंतिम स्लैश से प्रतिस्थापित, जावा एंड्रॉइड

स्ट्रिंग बदल रही है और मैं पहले स्लेश की संख्या प्राप्त नहीं कर सकता। मैं आखिरी स्लैश से एक सबस्ट्रिंग कैसे विभाजित कर सकता हूं?

/mnt/sdcard/वीडियो/Videoname -> Videnoname

+1

स्ट्रिंग नाम = "/ mnt/sdcard/वीडियो/वीडियोनाम"; स्ट्रिंग newName = name.substring (name.lastIndexOf ("/") + 1, name.length()); –

+0

इस लिंक का अनुसरण अपने उत्तर के जैसा एक उत्तर प्रश्न के लिए करें। https://stackoverflow.com/questions/4050087/how-to-obtain-the-last-path-segment-of-an-uri# –

उत्तर

0
string a = "/foo/bar/target"; 
string words = a.Split("/") 
string target = words[words.length-1] 
9

यदि आप अगर एक वस्तु "फ़ाइल" से, आप विधि के साथ प्राप्त कर सकते हैं मिल गया:

String fileName = myFile.getName(); 

आप एक सरल स्ट्रिंग से समझ में आ गया है, तो आप उपयोग कर सकते हैं

String fileName = myString.substring(myString.lastIndexOf("/")+1); 
+2

-1। स्ट्रिंग संस्करण गलत है, '"/ mnt/sdcard/वीडियो/वीडियोनाम" ''/videoname "'' वापस आएगा। जैसा कि मैंने सुझाव दिया है, 'फ़ाइल' एपीआई का प्रयोग करें, उदा। नई फ़ाइल ("/ mnt/sdcard/videos/videoname")। getName() जो सही '' Videoname '' वापस कर देगा। – dacwe

+1

आप सही हैं, मैं इंडेक्स में +1 जोड़ना भूल गया ... लेकिन, निश्चित रूप से, "फ़ाइल" संस्करण waaayay nicer है;) –

+0

अब, यह बेहतर है! – dacwe

21

आपको File एपीआई के माध्यम से जाना चाहिए। File.getName() से उद्धृत दस्तावेज:

इस सार पथनाम द्वारा निर्दिष्ट फ़ाइल या निर्देशिका का नाम देता है। पथनाम के नाम अनुक्रम में यह अंतिम नाम है। यदि पथनाम का नाम अनुक्रम खाली है, तो खाली स्ट्रिंग वापस कर दी जाती है।

उदाहरण:

String name = new File("/mnt/sdcard/Videos/Videoname").getName(); 
1

लेकिन थोड़ा और अधिक अनुसंधान, निम्नलिखित कोड काम करता है के साथ ...

String[] Tokens = stringPath.split("\\\\"); 

आप "\" से बचने के लिए दो बार की जरूरत है।

+0

दरअसल सवाल बैकस्लैश '' 'के बजाय आगे slashes'/'के बारे में था। – LarsH

6
String path = "/mnt/sdcard/Videos/Videoname"; // Your path 

String fileName = new File(path).getName(); // you file name 
2

सबसे आसान तरीका

String path ="AnyDirectory/subFolder/last.htm"; 
int pos = path.lastIndexOf("/") + 1; 

path.substring(pos, path.length()-pos); 

अब आप पथ स्ट्रिंग में last.htm है।

संबंधित मुद्दे