2012-05-11 30 views
16

Tôi muốn trích xuất tên của đường dẫn tuyệt đối. Nếu tôi có một chuỗi với giá trị/mnt/sdcard/Video/Videoname, tôi muốn lưu một chuỗi với giá trị Videoname.Lấy tên từ đường dẫn tuyệt đối, chuỗi con từ dấu gạch chéo cuối cùng, java android

Chuỗi đang thay đổi và trước đây tôi không thể nhận được số lượng dấu gạch chéo. Làm thế nào tôi có thể tách một chuỗi con khỏi dấu gạch chéo cuối cùng?

/mnt/sdcard/Video/Videoname -> Videnoname

+1

Tên chuỗi = "/ mnt/sdcard/Video/Videoname"; String newName = name.substring (name.lastIndexOf ("/") + 1, name.length()); –

+0

Theo liên kết này đến câu hỏi được trả lời tương tự như câu hỏi của bạn. https://stackoverflow.com/questions/4050087/how-to-obtain-the-last-path-segment-of-an-uri# –

Trả lời

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

Nếu bạn có thể từ một "File" đối tượng, bạn có thể lấy nó với phương pháp:

String fileName = myFile.getName(); 

Nếu bạn nhận từ chuỗi đơn giản, bạn có thể sử dụng

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

-1. Phiên bản chuỗi sai, '"/mnt/sdcard/Video/Videoname "' sẽ trả về '"/Videoname "'. Sử dụng API 'Tệp 'như tôi đã đề xuất, ví dụ: Tệp mới ("/ mnt/sdcard/Video/Videoname"). getName() sẽ trả lại đúng "" Videoname "'. – dacwe

+1

Bạn nói đúng, tôi đã quên thêm +1 vào chỉ mục ... Nhưng, chắc chắn, phiên bản "Tệp" là waaaay đẹp hơn;) –

+0

Bây giờ, điều đó tốt hơn! – dacwe

21

Bạn nên đi qua số File api. Được trích dẫn từ tài liệu File.getName():

Trả về tên của tệp hoặc thư mục được biểu thị bằng tên đường dẫn trừu tượng này. Đây chỉ là tên cuối cùng trong chuỗi tên của đường dẫn. Nếu chuỗi tên của đường dẫn trống, thì chuỗi rỗng sẽ được trả về.

Ví dụ:

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

Nhưng với một chút nghiên cứu thêm, đoạn code sau hoạt động ...

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

Bạn cần phải thoát khỏi "\" hai lần.

+0

Thực tế câu hỏi là về dấu gạch chéo chuyển tiếp '/' chứ không phải là dấu gạch chéo ngược '\'. – LarsH

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

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

Cách dễ nhất là

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

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

Bây giờ bạn có last.htm trong chuỗi con đường.

Các vấn đề liên quan